실시간 네트워크 영상 감시의 지연 시간

6월, 2024

요약

IP 영상 감시의 라이브 스트리밍 프로세스는 카메라에서 비디오를 캡처하고, 캡처한 비디오를 네트워크를 통해 패키징 및 전송하고, 리시버에서 압축을 풀어 해당 비디오를 표시하는 과정으로 구성됩니다. 이러한 각 단계는 지연 시간을 다소 추가합니다.

  • 카메라 측에서 발생한 지연 시간. 동영상 캡처 후 이미지 처리, 압축 및 패키징이 이어집니다. 각 단계마다 약간의 지연 시간이 발생하지만 전반적으로 카메라 내의 프로세스는 전체 엔드 투 엔드 지연 시간의 극히 일부에 불과합니다.

  • 네트워크에 의해 발생하는 지연 시간. 이는 매우 크거나 매우 작을 수 있으며 엔드 투 엔드 지연 시간 “방정식“에서 가장 예측하기 어려운 요소입니다. 좋은 네트워크 소프트웨어와 하드웨어에 투자하면 예측 가능성을 높일 수 있습니다. 네트워크 지연 시간은 데이터 대 대역폭 비율에 따라 크게 달라집니다. 카메라가 생성하는 데이터의 양을 줄이도록 카메라를 구성하여 네트워크를 통해 전송해야 하는 패킷의 양을 줄일 수 있습니다.

  • 클라이언트 측에서 발생한 지연 시간. 클라이언트 측에서는 데이터를 수신하고 버퍼링하여 그래픽 카드와 모니터로 출력되도록 정렬하여 대기시킵니다. 지연 시간은 클라이언트의 수신 버퍼에 의해 최대 몇 초까지 영향을 받습니다. 버퍼가 크지 않으면, 비디오 스트림이 고르게 재생되지 않을 위험이 있습니다.

지연 시간을 줄이는 것은 항상 비용의 문제입니다. 네트워크와 클라이언트 측 하드웨어 및 소프트웨어를 개선하면 가장 큰 성과를 거둘 수 있습니다.

서론

영상 감시 상황에서 지연 시간은 프레임이 캡처되는 순간부터 해당 프레임이 표시되는 순간까지의 시간입니다. 이를 엔드 투 엔드 지연 시간 또는 센서 대 화면 지연 시간이라고도 합니다. 카메라 센서에서 디스플레이 모니터로 프레임을 전송하는 과정에는 여러 단계의 긴 파이프라인이 포함됩니다.

이 백서에서는 총 지연 시간에 영향을 미치는 다양한 단계에 대해 간략하게 설명합니다. 지연 시간을 줄일 수 있는 방법에 대한 권장 사항도 제공합니다.

지연 시간이란?

지연 시간의 정의는 상황에 따라 다릅니다. 네트워크 기술에서 지연 시간은 일반적으로 정보가 소스에서 전송되는 시간과 동일한 정보가 최종 목적지에서 수신되는 시간 사이의 지연으로 인식됩니다.

이 백서에서는 네트워크 영상 감시 시스템의 지연 시간에 대해 설명합니다. 여기에서는 지연 시간을 카메라가 이미지를 캡처한 시간과 이미지가 비디오 디스플레이에 표시되는 시간 사이의 지연으로 정의합니다. 이 지연 시간 동안 이미지가 캡처, 압축, 전송, 압축 해제 및 표시됩니다. 모든 단계는 총 지연에 자체 지연을 더합니다. 간단하게 설명하기 위해 엔드 투 엔드 지연 시간은 크게 세 단계로 구성된다고 볼 수 있습니다.

  • 카메라에 의해 발생하는 지연 시간(이미지 처리 지연 시간, 압축 지연 시간)

  • 네트워크에 의해 발생하는 지연 시간(전송 지연 시간)

  • 리시버 측에서 발생하는 지연 시간(클라이언트 버퍼, 압축 해제 지연 시간, 디스플레이 지연 시간)

영상 감시 시스템의 지연 시간 목표를 달성하려면, 비디오 솔루션을 설계할 때 이러한 각 지연 시간을 고려해야 합니다.

지연 시간은 어떻게 측정하나요?

지연 시간은 일반적으로 초 또는 밀리초(ms)와 같은 시간 단위로 표시됩니다. 정확한 지연 시간을 측정하려면, 카메라와 디스플레이 장치의 시계가 정확히 동기화되어야 하므로 정확한 지연 시간을 측정하는 것은 매우 어렵습니다. 한 가지 간단한 방법은 (정확한 값과의 편차를 최소화하기 위해) 타임스탬프 오버레이 텍스트 기능을 사용하는 것입니다. 이 방법은 영상 감시 시스템의 엔드 투 엔드 지연 시간, 즉 렌즈에서 한 이미지 프레임이 캡처될 때와 해당 프레임이 모니터링 장치에서 렌더링될 때 사이의 시간 차이를 측정합니다.

이 방법을 사용하면 최대 1 프레임 간격의 오류가 발생할 수 있습니다. 이는 지연 시간을 계산하는 데 사용되는 타임스탬프가 프레임 캡처 시에만 수집된다는 사실에 따라 달라집니다. 따라서 프레임 레이트 계수로만 지연 시간을 계산할 수 있습니다. 따라서 프레임 레이트가 25 fps인 경우 지연 시간을 40 ms의 배수로 계산할 수 있습니다. 따라서 프레임 레이트가 1 fps인 경우 지연 시간을 초의 배수로 계산할 수 있습니다. 따라서 이 방법은 낮은 프레임 레이트에는 권장되지 않습니다.

타임스탬프 오버레이 텍스트 기능을 사용하여 지연 시간을 측정하는 방법:

  1. (%T:%f)를 사용하여 오버레이에서 타임스탬프를 켭니다.

  2. 자체 라이브 스트림 출력을 캡처할 수 있도록 카메라를 각도에 맞추어 배치합니다.

  3. 라이브 스트림 출력의 스냅샷을 찍어 원본 텍스트 오버레이에 표시된 시간과 화면 루프에 표시된 시간 간의 시간 차이를 비교합니다.

    타임스탬프 오버레이 텍스트 기능을 사용한 지연 시간 측정의 예. 25.46-25.30=0.16초 또는 160 ms의 시간차를 발견할 수 있습니다. 즉, 엔드 투 엔드 지연 시간은 160 ms입니다.

지연 시간에 영향을 미치는 요인은?

총 지연 시간은 카메라, 네트워크, 클라이언트 측에 의해 발생하는 지연 시간의 합계입니다.

카메라에 의해 발생하는 지연 시간

각 프레임의 노출 시간 간격은 약 1/30초이며, 이어서 이미지 스케일링 및 인코딩에 짧은 시간이 소요됩니다. 인코딩된 이미지는 잘게 쪼개져 패키징되고 33 ms마다 하나의 이미지가 네트워크에 출력됩니다. 카메라에서 이 프로세스에 걸리는 시간은 50 ms 미만일 수도 있지만, 일반적으로 수백 ms가 걸립니다. 카메라(PTZ 제외)에 따라 그리고 프레임이 I-프레임인지 P-프레임인지에 따라 약간씩 다릅니다.

캡처 지연 시간

비디오 카메라 내부를 살펴보겠습니다. 카메라의 이미지 센서는 픽셀이라고 하는 수백만 개의 광 검출기(감광점)로 구성되어 있습니다. 센서는 기록된 빛 에너지를 전자 신호로 변환하기 전에 한 노출 간격 동안 픽셀의 빛을 캡처합니다. 그러면 픽셀이 비어 있고 또 다른 노출에 대한 준비가 된 것입니다. 센서가 시간 단위당 제공하는 노출 수, 즉 카메라가 초당 캡처할 수 있는 프레임 수는 센서의 캡처 속도를 정의합니다.

캡처 지연 시간은 캡처 속도에 따라 달라집니다. 캡처 속도를 30 fps로 설정하면 센서가 1/30초마다 하나의 이미지를 캡처하므로 캡처 지연 시간은 최대 33.3 ms가 됩니다.

이미지 처리 지연 시간

캡처된 각 프레임은 디인터레이싱, 스케일링, 이미지 회전과 같은 이미지 처리 단계의 파이프라인을 거치므로 지연 시간이 늘어납니다. 처리량이 많을수록 카메라에서 발생하는 지연 시간이 늘어납니다. 하지만 카메라의 처리량이 데이터 생성량에 영향을 미치므로, 처리량에 따라 데이터가 네트워크를 통해 전송될 때 네트워크 지연 시간에도 영향을 미칩니다.

지연 시간에 영향을 미치는 몇 가지 매개 변수는 다음과 같습니다.

  • 이미지 회전. 비디오 스트림을 90도 또는 270도 회전하면 인코딩 프로세서에 부하가 추가됩니다. 픽셀을 재배열하고 버퍼링해야 하므로 약간의 지연이 발생합니다.

  • 해상도. 더 높은 해상도는 프로세서가 인코딩할 픽셀 수가 더 많다는 것을 의미합니다. 고해상도 카메라의 더 빠른 처리 장치로 균형을 맞추기 때문에 저해상도에 비해 고해상도의 처리 시간 증가는 일반적으로 미미합니다. 하지만 해상도가 높을수록 프레임당 데이터가 많아지고 따라서 전송할 패킷도 많아집니다. 대역폭이 제한된 네트워크에서는 이로 인해 전송 중 지연이 발생할 수 있습니다. 그러면 리시버 측에서 더 큰 버퍼가 필요하게 되어 지연 시간이 더 길어집니다.

  • 노이즈 필터링. 고급 노이즈 필터링을 사용하려면 여러 프레임의 버퍼링이 필요하므로 지연 시간이 추가로 발생합니다.

  • 프라이버시 마스킹. AXIS Live Privacy Shield와 같은 고급 프라이버시 마스킹 기능은 추가적인 지연 시간을 유발할 수 있습니다. 이는 올바른 프라이버시 마스크가 적시에 적용될 수 있도록 하기 위해 필요한 버퍼링 때문입니다.

압축 지연 시간

비디오는 전송하기 전에 데이터를 압축하기 위해 인코딩됩니다. 압축에는 이미지 데이터를 제거하는 하나 또는 여러 개의 수학적 알고리즘이 포함됩니다. 처리할 데이터의 양에 따라 다소 시간이 걸립니다. 이 단계에서 도입된 압축 지연 시간은 압축의 여러 측면에 의해 영향을 받습니다.

  • 압축 알고리즘의 복잡성

    H.264와 H.265는 MJPEG보다 더 진보된 압축 방식입니다. 그러나 Axis 카메라는 일반적으로 MJPEG 압축에 비해 H.264 및 H.265 압축 용량이 더 높습니다. 따라서 H.264 또는 H.265의 압축 지연 시간이 반드시 더 길지는 않습니다. 반면, 디코딩 사이트에서는 더 높을 수 있습니다. Axis 카메라에서 생성되는 H.264 및 H.265 데이터 스트림은 디코더가 한 프레임 이상을 버퍼링할 것을 요구하지만, MJPEG 디코딩에는 버퍼가 필요하지 않습니다. 이외에도, Zipstream 스토리지 프로파일은 최대 2프레임의 추가 지연 시간, 즉 30 fps 비디오의 경우 66.7 ms를 추가합니다.

  • 압축 방법의 효과

    Axis 카메라에 사용되는 가장 일반적인 인코딩 방식은 MJPEG, H.264 및 H.265이며, 모두 카메라에 지연 시간을 발생시킵니다. H.264 및 H.265는 MJPEG와 비교하여 비디오 처리량을 최소화하므로 네트워크를 통해 전송하고 리시버 측에서 압축을 풀고 렌더링할 데이터 패킷이 더 적습니다. 이를 통해 총 지연 시간이 줄어듭니다.

  • 비트레이트 선택

    비디오 압축은 비디오 데이터 크기를 줄여줍니다. 그러나 압축 후 모든 프레임의 크기가 동일한 것은 아닙니다. 압축된 데이터 크기는 장면에 따라 달라질 수 있습니다. 즉, 원본 압축 데이터는 가변 비트레이트(VBR)의 스트림으로 구성되며, 이에 따라 가변 비트레이트가 네트워크에 출력됩니다. 대역폭 제한 등 사용 가능한 네트워크의 제약을 고려해야 합니다. 스트리밍 비디오 시스템의 대역폭 제한으로 인해 일반적으로 전송 비트레이트를 조절해야 합니다. 일부 엔코더에서는 VBR과 최대 비트레이트(MBR) 중에서 선택할 수 있습니다. MBR을 선택하면 네트워크가 제한된 양의 데이터를 수신하도록 보장됩니다. 네트워크 과부하를 방지하여, 네트워크 지연을 줄이고 시스템 리시버 측의 더 큰 버퍼의 필요성을 줄일 수 있습니다.

    Axis 카메라에서, H.264 및 H.265 엔코더는 VBR 및 MBR을 선택할 수 있도록 합니다. 그러나 일반적으로 네트워크 비디오에서는 실시간으로 장면 콘텐츠에 맞게 화질이 조정되는 VBR을 사용하는 것이 좋습니다. MBR 비디오를 전송하는 카메라가 중요한 상황에서 중요한 포렌식 세부 정보를 강제로 삭제할 수 있으므로, 항상 MBR을 일반적인 저장 공간 감소 도구나 네트워크 연결이 취약한 경우의 수정 도구로 사용하는 것은 권장하지 않습니다.

    카메라에서 Zipstream을 사용하면 비트레이트가 감소합니다. 이렇게 하면 데이터 양이 줄어들어 네트워크의 지연 시간이 줄어듭니다.

  • 스트림 수. 카메라에서 두 가지 이상의 스트림 유형(다른 프레임 레이트 또는 해상도)을 요청하는 경우, 모든 스트림이 동일한 프로세서에서 인코딩되어야 하므로 추가 스트림 유형을 처리하면 지연 시간이 추가됩니다.

압축 방법을 선택할 때는 이러한 모든 측면을 고려해야 합니다. 고급 인코딩 알고리즘은 인코딩과 디코딩에 시간이 더 오래 걸릴 수 있지만, 다른 한편으로는 인터넷을 통해 전송되는 데이터 양을 줄여 전송 지연을 단축하고 리시버 버퍼의 크기를 줄일 수 있습니다.

버퍼 지연 시간

비디오는 한 번에 한 프레임씩 처리되기 때문에 한 번에 압축할 수 있는 데이터의 양이 제한되어 있습니다. 처리 단계 사이에 단기 버퍼가 필요한 경우가 있으며, 이로 인해 카메라의 지연 시간이 길어집니다.

오디오 지연 시간

경우에 따라 비디오 스트림에 오디오가 함께 제공되는 경우도 있습니다. 오디오 엔코더는 오디오 인코딩을 시작하기 위해 블록을 사용할 수 있을 때까지 일정량의 샘플을 기다려야 하며, 이로 인해 카메라 측에서 지연이 추가됩니다. 오디오 인코딩 알고리즘에 따라 샘플 레이트와 블록 크기가 다릅니다.

네트워크 지연 시간

이미지가 캡처, 처리, 압축된 후 비디오 데이터는 렌더링을 위해 클라이언트 측에 도달하기 전에 네트워크를 통해 이동합니다. 네트워크가 지연 시간에 미치는 영향을 이해하려면 먼저 비디오 네트워킹의 기본 개념인 비트레이트, 대역폭, 처리량을 이해해야 합니다. 네트워크 지연 시간은 비트레이트에 비례하고 대역폭에는 반비례합니다.

  • 비트레이트는 단위 시간당 처리되는 데이터의 양을 비트 단위로 측정한 것입니다. 영상 감시에서 비트레이트는 단위 시간당 네트워크를 통해 전송하기 위해 카메라에서 생성된 데이터의 양으로 정의됩니다. 비트레이트는 촬영된 장면, 카메라에서 수행되는 처리, 비디오 스트림 설정 등 다양한 요인에 따라 달라집니다. 카메라가 전송할 데이터를 더 많이 생성할 때 대역폭이 제한되면, 네트워크 지연 시간이 길어질 수 있습니다.

  • 대역폭은 카메라와 모니터 사이의 네트워크가 잠재적으로 처리할 수 있는 데이터의 양을 의미합니다. 이는 링크의 최대 기능입니다. 대역폭은 링크의 길이와 인프라, 즉 스위치, 라우터, 케이블, 프록시 등에 따라 달라집니다. 네트워크 용량을 늘리면 더 많은 데이터가 통과할 수 있어 지연 시간이 줄어듭니다.

  • 처리량은 데이터 전송의 실제 달성 속도(bits/s)입니다. 이는 다른 사람과 링크를 공유하고 있는지 여부와 링크에 연결된 케이블의 전자기 간섭에 따라 달라집니다. 포트에 구성된 QoS(서비스 품질) 설정에 따라 처리량이 제한될 수도 있습니다.

    카메라와 모니터 사이의 링크(네트워크)를 파이프에 비유하면 비트레이트(1)는 시간 단위당 파이프로 전송되는 데이터의 양, 대역폭(2)은 파이프의 두께, 처리량(3)은 시간 단위당 파이프를 통해 실제로 전달되는 데이터의 양을 측정하는 척도입니다.
  1. 비트레이트
  2. 대역폭
  3. 처리량

네트워크의 총 지연 시간은 카메라와 동영상 시청 장치 간의 링크 인프라(대역폭을 결정), 카메라에서 생성되는 데이터의 양(비트레이트를 결정), 전송 프로토콜 선택과 같은 세 가지 주요 요인에 따라 달라집니다.

인프라

네트워크는 엔드 투 엔드 지연 시간의 가장 예측하기 어려운 원인입니다. 스위치, 라우터, 케이블, 프록시: 센더와 리시버 사이의 네트워크에 있는 모든 것이 총 지연 시간에 영향을 미칩니다. LAN에서 네트워크의 지연 시간은 몇 ms에 불과할 수 있으며, 이는 무시해도 될 정도로 매우 낮은 수준입니다. 그러나 비디오 스트림이 지정되지 않은 경로로 인터넷을 통해 전송되는 경우, 네트워크 지연 시간을 예측하기 어렵고 많은 경우 엔드 투 엔드 지연 시간의 주요 원인이 될 수 있습니다.

신중한 네트워크 관리와 대역폭 할당을 통해, 네트워크 지연 시간의 예측 불가능한 요인을 더 예측 가능하게 만들 수 있습니다. 카메라와 보기 장치 간의 링크에는 처리량이 보장되어 있어야 합니다.

LAN에서는, 링크에 홉의 수를 최대한 적게 만들어 처리량을 보장할 수 있습니다. VoIP(Voice over IP) 또는 기본적으로 비디오보다 우선순위가 높은 기타 프로토콜 또는 링크에 과부하를 주는 까다로운 서비스 등의 트래픽과 링크를 공유해서는 안 됩니다.

링크가 WAN(wide area network)을 이용하는 경우에는 각 홉에서, 즉 라우터 및 스위치에서 QoS를 보장해야 합니다. 이를 위해 지역 인터넷 제공업체를 통해 지점 간 경로를 임차할 수도 있습니다.

처리량에 영향을 미치는 구성 가능한 요소:

  • 패키지 오버헤드(프로토콜에 따라 달라짐, 예: VLAN 헤더)

  • 프록시 및 방화벽

  • 전체 경로에서 각 링크의 QoS

  • 버스트 모드 사용 여부(활성화 -> 더 빠른 속도)

  • MTU - 비디오 페이로드의 크기

처리량에 영향을 미치는 비용 관련 요인:

  • 스위치 및 라우터의 프로세서 속도 및 포트 버퍼

  • 케이블(또는 무선) 유형

비디오 스트림 데이터의 양

카메라의 이미지 처리 및 압축 방법 선택은 생성되는 비디오 데이터의 양에 영향을 미치기 때문에 네트워크 지연 시간에 영향을 미칩니다. 소량의 데이터를 전송하면 확실히 시간이 덜 걸립니다.

전송 프로토콜

카메라의 비디오 프레임은 전송 프로토콜 애플리케이션(일반적으로 RTP 또는 HTTP)으로 전달됩니다. 렌더링 클라이언트로 전송되는 것은 IP 네트워크를 통해 이루어집니다. 전송은 손실된 데이터 패킷에 대한 재전송 기능이 있는 연결 지향 프로토콜인 신뢰성 있는 TCP를 통해 이루어지거나, 전송을 보장하지 않고 손실된 패킷을 재전송하는 기능이 없는 더 단순한 프로토콜인 UDP를 통해 이루어집니다.

Axis 카메라에서는 전송을 위해 인코딩된 데이터 스트림을 캡슐화할 때 다음과 같은 옵션을 사용할 수 있습니다.

인코딩된 데이터 스트림을 캡슐화하기 위한 옵션.
토폴로지권장 Axis 비디오 패킷 캡슐화 모드
LAN / 더 적은 홉 수 및 직접 관리형 노드MJPEG / HTTP / TCP
LAN / 더 적은 홉 수 및 직접 관리형 노드H.264, H.265 또는 MJPEG / RTP / RTSP / HTTP / TCP
LAN / 더 적은 홉 수 및 직접 관리형 노드H.264, H.265 또는 MJPEG / RTP / RTSP /T CP
WAN / 노드를 완전히 제어할 수 없는 여러 홉H.264, H.265 또는 MJPEG / RTP / Unicast / UDP
WAN / 노드를 완전히 제어할 수 없는 여러 홉H.264, H.265 또는 MJPEG / RTP / Multicast / UDP

원격 연결 / 클라우드 / WAN / 노드를 완전히 제어할 수 없는 여러 홉

H.264, H.265 또는 MJPEG / RTP / WebRTC / UDP 또는 TCP

일반적으로 추가 연결 설정, 확인 메시지, 손실 감지 시 패키지 재전송 등으로 인해 일반적으로 UDP보다 TCP를 통해 패킷을 전송하는 데 시간이 더 오래 걸립니다. 반면, UDP를 사용하면 패킷이 도중에 손실될 경우 비디오 스트림에 아티팩트나 중단 현상이 발생합니다. TCP는 패킷 손실 시 지터를 발생시키고, UDP는 패킷 손실 시 아티팩트 및/또는 중단 현상을 발생시킵니다. 데이터 손실과 일시적인 품질 저하를 감수할 수 있는 경우, 대역폭이 낮은 네트워크에 UDP를 선택할 수 있습니다.

TCP를 사용하는 경우, 전송할 패킷이 더 많아지고 이를 지원하려면 더 큰 대역폭이 필요합니다. 네트워크에 많은 정체가 있는 경우, UDP를 전송 프로토콜로 선택해야 합니다. 패킷 손실이 허용되기 때문에, 동시에 패킷 손실이 발생하여 이미지 품질이 저하됩니다.

WebRTC 및 적응형 비트레이트를 사용하면, 비디오가 네트워크에 맞게 조정되어 TCP에서 발생할 수 있는 제어할 수 없는 지연 시간 급증을 방지할 수 있습니다.

클라이언트 측의 지연 시간

비디오 시스템의 클라이언트 측에서 비디오가 수신되면, 비디오를 압축을 풀고, 재정렬하고, 디코딩한 다음 미디어 플레이어를 사용하여 비디오를 렌더링합니다. 각 단계는 클라이언트 측에서 발생하는 총 지연 시간에 기여하며, 컴퓨터 자체가 중요한 역할을 합니다. CPU 용량, 운영 체제, 네트워크 카드, 그래픽 카드가 지연 시간에 영향을 미칩니다. 일반적으로 MJPEG는 타임 코드 없이 데이터가 도착하는 대로 화면에 그릴 수 있기 때문에 디코딩 및 디스플레이 지연 시간이 가장 짧은 방법입니다. H.264 및 기타 비디오 압축 표준은 각 사진에 타임 코드를 할당하고 그에 따라 렌더링하도록 요구합니다.

플레이아웃 버퍼

실제 네트워크는 매우 크고 복잡한 경우가 많아 트래픽이 폭증하고 패킷이 서로 다른 순서로 도착합니다. 네트워크 전송으로 인한 변동을 보완하기 위해 클라이언트 측에서 버퍼가 사용됩니다. 플레이아웃 버퍼 또는 지터 버퍼라고도 하는 이 버퍼는 패킷이 올바른 순서로 전달되도록 하고 디코더에 데이터가 “부족하게 공급“되지 않도록 충분한 데이터를 버퍼링하여 뷰어에 균일한 프레임 레이트가 표시되도록 합니다.

이 버퍼는 상대적으로 높은 지연 시간을 유발합니다. 뷰어 애플리케이션마다 플레이아웃 버퍼 크기가 다르며, 대부분의 뷰어에서는 이를 변경할 수 있습니다. 하지만 버퍼를 줄이면 지터가 증가하므로 지터와 허용 가능한 지연 시간 사이의 균형을 찾아야 한다는 점을 명심해야 합니다.

오디오 버퍼

재생 시 오디오 스트리밍은 비디오 스트리밍보다 끊김이나 지연에 더 민감합니다. 오디오 패킷 하나가 지연되면 사운드 트랙에 성가신 균열이 생기고 오디오는 비디오와 립싱크를 맞춰야 합니다. 이러한 이유로 비디오에 오디오가 함께 제공되는 경우, 큰 플레이아웃 버퍼를 설정해야 하며, 이로 인해 당연히 지연 시간이 늘어납니다.

압축 해제

압축 해제 프로세스에 필요한 시간은 사용되는 인코딩 방법에 따라 다릅니다. 디코딩 지연 시간은 그래픽 카드에서 사용할 수 있는 하드웨어 디코더 지원에 따라 크게 달라집니다 하드웨어 디코딩은 일반적으로 소프트웨어보다 빠릅니다. 일반적으로 H.264는 MJPEG보다 디코딩하는 데 시간이 더 오래 걸립니다. H.264 디코딩의 경우, 인코딩 단계에서 선택한 프로파일에 따라 지연 시간도 달라집니다. 베이스 프로파일은 디코딩하기 가장 쉬운 반면, 메인 프로파일과 하이 프로파일은 디코딩하는 데 시간이 더 오래 걸립니다. Axis 비디오 제품에서 생성되는 H.264 데이터 스트림은 디코더가 최소 한 프레임을 버퍼링할 것을 요구합니다.

디스플레이 장치

디스플레이 장치는 전송 시간, 주사율, 응답 시간 등 지연 시간에도 영향을 미칩니다.

전송 시간은 디코딩된 비디오 데이터가 디코더에서 케이블(예: HDMI)을 통해 모니터로 전송되는 데 걸리는 시간입니다. 전송 시간은 케이블의 속도와 모니터의 해상도에 따라 달라집니다. 표준 HDMI 케이블로 연결된 FHD 모니터의 경우, 약 10 ms의 지연 시간이 추가됩니다.

디스플레이 장치의 리프레시 주파수도 지연 시간에 영향을 줍니다. 컴퓨터 모니터의 경우 주사율은 약 17~20 ms인 반면, 특수 게이밍 모니터의 주사율은 4~5 ms입니다.

응답 시간은 모니터의 픽셀이 값을 변경하는 데 걸리는 시간입니다. 이는 변경의 크기에 따라 다르지만, 변경이 크면 5~20 ms의 지연 시간이 추가될 수 있습니다.

지연 시간 단축

지연 시간 단축이라는 목표를 달성하기 위해 시스템을 설계하려면 다른 절충안이 필요합니다. 허용 가능한 지연 시간을 결정하고 영상 품질과 감시 시스템 비용 간의 균형을 찾아야 합니다. 이 장에서는 엔드 투 엔드 지연 시간을 줄이기 위해 카메라 측, 네트워크, 클라이언트 측에 대한 몇 가지 간단한 권장 사항을 제공합니다.

카메라 지연 시간 단축

  • 해상도. 가능하면 낮은 해상도를 선택합니다. 해상도가 높을수록 인코딩해야 할 데이터가 많아지므로 지연 시간이 더 길어질 수 있습니다.

  • 이미지 향상 기능. 회전, 디인터레이싱, 크기 조정과 같은 이미지 향상 기능의 사용을 줄입니다. 이미지 향상 기능을 사용하면 지연 시간이 늘어날 수 있습니다.

  • 저지연 모드. 일반 구성 설정에서 저지연 모드를 켜서 라이브 스트림의 이미지 처리 시간을 최적화할 수 있습니다. 라이브 스트림의 지연 시간은 최소로 줄어들지만 이미지 품질은 평소보다 낮아집니다.

  • 프라이버시 마스킹. 프라이버시 마스킹은 지연 시간을 증가시키므로 사용하지 않는 것이 좋습니다.

  • 인코딩. 엔코더가 시스템에 필요한 지연 시간 제어 수준을 제공하는지 확인합니다. 데이터의 양과 네트워크 인프라의 용량 간에 균형이 맞아야 합니다. 대역폭이 제한된 네트워크를 통해 비디오를 전송하는 경우, H.264 또는 H.265를 인코딩 방법으로 선택합니다. 이렇게 하면 압축이 더 어려워져 비트레이트가 낮아집니다. 네트워크에서 비트레이트를 관리할 수 있는 경우 ​베이스라인 프로파일을 선택합니다. 베이스라인은 인코딩 및 디코딩이 더 쉬워지기 때문입니다.

  • Zipstream의 스토리지 프로파일. 스토리지 프로파일은 지연 시간을 증가시키므로 사용하지 않는 것이 좋습니다.

  • 스트림 수. 다양한 설정으로 카메라의 스트림 수를 제한합니다. 해상도, 프레임 레이트, 압축 등 각각의 고유한 설정 조합에는 개별 인코딩 프로세스가 필요하므로 프로세서에 부하가 가중되고 지연이 발생합니다.

  • 비트레이트. 낮은 비트레이트를 사용해 보십시오. 카메라의 지연 시간을 줄이려면 생성되는 데이터의 양을 줄여야 합니다. 비트레이트는 조명 조건, 장면 유형은 물론 압축 수준, 해상도, 프레임 레이트 등 다양한 요소의 영향을 받습니다.

  • 프레임 레이트. 최대한 높은 프레임 레이트를 사용합니다. 프레임이 한 번에 한 프레임씩 인코딩 및 디코딩되므로 버퍼는 최소 한 프레임을 지연시킵니다. 프레임 레이트가 높을수록 버퍼에서 발생하는 지연이 줄어듭니다. 30 fps의 스트림의 경우 각 프레임을 캡처하는 데 1/30초가 걸립니다. 그러면 버퍼에서 최대 33 ms의 지연 시간이 발생한다고 예상할 수 있습니다. 25 fps의 경우, 지연 시간은 최대 40 ms입니다.

  • 캡쳐 모드. 해상도가 낮고 되도록 프레임 레이트가 높은 캡처 모드를 사용하는 것이 좋습니다. 해상도가 낮으면 처리할 픽셀 수가 적고 프레임 레이트가 높으면 버퍼 지연이 줄어듭니다.

  • 오디오. 오디오를 사용하지 않는 것이 좋습니다. 동영상과 동기화해야 하는 오디오는 더 큰 재생 버퍼가 필요하므로 지연 시간이 길어집니다.

네트워크 지연 시간 단축

카메라 측과 관련된 많은 권장 사항은 네트워크를 통해 전송되는 총 데이터 양을 제한하는 것을 목표로 합니다. 대부분의 경우 제한된 네트워크가 엔드 투 엔드 지연 시간의 가장 큰 원인입니다. 네트워크의 용량이 크면, 위의 권장 사항 중 많은 부분이 필요하지 않습니다. 네트워크의 서비스 품질이 양호한지, 네트워크 내의 모든 홉이 비디오 수요에 맞게 구성되어 있는지 확인합니다. 네트워크를 통한 비트레이트가 카메라에서 출력되는 데이터를 전송할 수 있는지 확인합니다.

클라이언트 측의 지연 시간 단축

클라이언트 측의 개선은 엔드 투 엔드 지연 시간에 큰 영향을 미치며, 따라서 일반적으로 할 수 있는 것이 많습니다.

프로세서 및 그래픽 카드. CPU는 클라이언트 측 지연 시간에서 중심적인 역할을 합니다. 비디오 스트림을 처리하고 다른 요청을 동시에 처리할 수 있는 충분한 용량을 갖춘 좋은 프로세서를 사용합니다. 최신 소프트웨어로 업데이트되고 디코딩을 지원하는 우수한 그래픽 카드를 사용합니다.

뷰어/VMS. 뷰어에 불필요하게 긴 플레이아웃 버퍼가 없는지 확인하되, 비디오 지터와의 상충 관계에 유의합니다.

디스플레이. 되도록 주사율이 빠른 디스플레이를 사용합니다. 쾌적한 실시간 보기를 보려면(그럼에도 불구하고 지연 시간에 영향을 주지 않으려면) 화면 주파수를 카메라 캡처 프레임 레이트의 배수로 조정합니다. 예를 들어, 30 fps 모드의 경우 60 Hz, 25 fps 모드의 경우 50 Hz입니다.