IT Eng 이야기

메가픽셀 카메라의 Bandwidth를 효과적으로 사용하는 방법

YSP 2017. 6. 8. 17:40

                 

                   메가픽셀 카메라의 Bandwidth를 효과적으로 사용하는 방법 

               한화테크윈

코덱 선택


네트워크 카메라의 영상데이터를 있는 그대로 전송하게 되면 데이터 크기는 엄청나게 커집니다. 그래서 영상을 효과적으로 압축하고, 압축을 푸는데 사용하는 방식이 코덱(CODEC, coder-decoder) 입니다. 코덱은 영상의 디지털 데이터를 압축하여 전체 데이터 크기를 줄이고, 이는 효과적인 데이터 전송과 저장 등을 위해 사용합니다. 코덱의 종류에는 여러 가지가 있으며, 각각의 코덱마다 압축하는 방식에 차이가 있기 때문에 어떤 코덱을 사용하느냐에 따라 영상의 데이터 크기도 달라집니다.

● MJPEG(Motion JPEG)

MJPEG은 비디오를 구성하는 프레임 단위로 이미지를 압축하는 방식입니다. 영상의 프레임 레이트를 30fps로 설정하였다면 카메라는 초당 30장의 영상을 전송하여 보여주는데, MJPEG코덱을 사용하면 전송되는 프레임이 한 장씩 압축되어 전송됩니다. 프레임 단위로 각기 압축되기 때문에 연속된 프레임간의 어떠한 상관관계도 갖지 않습니다. 그러므로 MJPEG코덱을 사용한 영상은 하나의 프레임에 문제가 발생하였다고 하더라도 이후 다음프레임에 영향을 주지 않는다는 장점이 있습니다. 그러나 각각의 모든 프레임에 이미지를 위한 모든 데이터를 포함하므로 다른 코덱대비 데이터 량이 커진다는 단점이 있습니다.

mjpeg이미지
[Fig 1-1] MJPEG 이미지

● H.264

H.264는 비디오를 구성하는 프레임간의 차이를 분석하여 차이가 나는 데이터만 압축하는 비디오 압축방식입니다. H.264코덱으로 압축을 할 때는 프레임에 따라 압축을 달리하는데, 압축하는 방식에 따라 I프레임과 P프레임으로 구분할 수 있습니다. I프레임은 기준이 되는 프레임으로 프레임에 포함된 모든 데이터를 가지고 있고, P프레임은 이전 프레임과 비교하여 차이가 있는 부분의 데이터만 가지고 있어, I프레임과 비교하여 비교적 크기가 작습니다.

H.264이미지
[Fig 1-2] H.264 이미지

H.264코덱으로 압축하는 경우, 같은 영상을 MJPEG으로 압축할 때보다 더 적은 데이터로 구성될 수 있습니다. 그러나 H.264코덱은 P프레임을 구성할 때 이전프레임을 참고하여 다음 프레임을 만들고, 영상을 보여줄 때도 이전프레임 데이터를 이용하므로 프레임에 손상이 생겼을 경우 이후 프레임을 재생할 수 없게 됩니다. (다음 I프레임이 나올 때까지)

h.264이미지
[Fig 1-3] 프레임 손상에 따른 H.264이미지 재생

● 코덱 타입에 따른 데이터 크기 비교

삼성테크윈의 메가픽셀 카메라에서는 영상압축을 위해 H.264와 MJPEG코덱을 지원합니다. 아래 그림은 동일한 영상을 H.264코덱을 사용할 때와 MJPEG코덱을 사용할 때 데이터 크기가 어떻게 나타나는지를 측정한 화면입니다

코덱 타입에 따른 데이터 크기 비교
[Fig 1-4] 코덱 타입에 따른 데이터 크기 비교

위의 코덱 별 특징에서 설명한 것과 같이 테스트에서도 동일한 화면을 촬영했을 때, MJPEG보다 H.264를 사용했을 때 더 적은 데이터를 사용하는 것을 알 수 있습니다.

● 설치환경에 따른 코덱 선택

데이터 크기를 비교했을 때는 MJPEG을 사용하는 것보다 H.264를 사용하는 것이 데이터 및 대역폭을 더 효율적으로 사용할 수 있습니다. 하지만 데이터 손실이 일어나는 경우, H.264보다 MJPEG이 데이터 손실을 줄일 수 있기 때문에 설치되는 네트워크 망 특성에 따라 올바른 코덱 선택이 필요합니다.




GOV 길이


H.264코덱은 I프레임과 여러 장의 P프레임이 반복적으로 구성되어 있습니다. H.264코덱으로 영상압축을 하는 경우, I프레임과 몇 장의 P프레임으로 구성할 것인지를 설정해야 하는데 이 길이를 GOV (Group of Video)라고 합니다. 따라서 GOV의 길이는 I프레임의 간격을 나타냅니다.

GOV가 15일 경우, I프레임이 나오고 15프레임 뒤에 다음 I프레임이 생성됩니다.

I프레임과 P프레임의 데이터 크기를 비교하면, I프레임이 P프레임보다 더 많은 데이터를 포함하고 있어 데이터 크기기가 큽니다. GOV가 길수록 전체 영상 중에 P프레임이 차지하는 수가 늘어나므로 전체 영상의 크기는 작아지고, GOV가 짧을수록 P프레임 수가 적어지므로 전체 영상의 크기는 커집니다.

gov길이와 데이터크기
[Fig 2-1] GOV길이와 데이터 크기

그러나 GOV가 길 경우 데이터가 손상되었을 때 손실되는 프레임이 많아집니다. H.264코덱은 이전프레임을 참고하여 P프레임을 재생하기 때문에, 만약 어느 하나의 프레임의 데이터가 손실되었다면 다음 P프레임은 참고할 프레임 데이터가 없기 때문에 재생을 할 수 없게 됩니다. 하나의 프레임이 손상되면 다음 I프레임이 나올 때까지 모든 P프레임을 재생할 수 없게 됩니다.

mjpeg의 데이터 손상
[Fig 2-2] MJPEG의 데이터 손상
h.264의 데이터 손상
[Fig 2-3] H.264의 데이터 손상

이렇게 프레임 손실은 GOV가 길어질수록 영향을 받는 프레임이 많아지므로 손실 프레임이 많아지게 됩니다.

GOV길이와 프레임손실의 관계
[Fig 2-4] GOV길이와 프레임 손실의 관계

● GOV길이에 따른 데이터 크기 비교

삼성테크윈의 메가픽셀 카메라에서는 사용자의 환경에 맞게 설정하도록 GOV길이를 조정할 수 있습니다. 아래 그림은 동일한 영상을 GOV를 달리하여 사용할 때 데이터 크기가 어떻게 나타나는지를 측정한 화면입니다.

GOV길이에 따른 데이터 크기 비교
[Fig 2-5] GOV길이에 따른 데이터 크기 비교

데이터 크기를 비교했을 때는 GOV가 짧을수록 데이터 크기가 커지는 것을 확인할 수 있습니다.

● 설치환경에 따른 GOV 설정

프레임의 손실을 최소화하면서 대역폭을 효율적으로 사용하기 위해서는 설치 환경을 분석하여 현장에 알맞은 GOV를 설정해야 합니다. 네트워크 손실이 일어날 가능성이 높은 곳에서는 GOV를 줄여 손실되는 프레임을 최소화하고, 네트워크 대역폭이 좁은 곳에서는 전송되는 영상데이터 크기를 줄이기 위해 GOV를 늘이는 것이 필요합니다.

단, GOV는 해당 비디오 프로파일의 설정 프레임 레이트 값 이상 넘어가지 않도록 설정하도록 권장합니다.




비트율 제어는 영상의 데이터 크기(=비트레이트)를 어떻게 조절할 것인가 하는 방법입니다. 영상의 데이터 크기는 순간순간의 움직임이나 영상의 복잡도 등에 의해 매 프레임마다 달라집니다. 이런 영상데이터의 양을 조절하는 기준을 가변적으로 설정할 것인가 고정적으로 유지할 것인가에 따라 VBR 또는 CBR을 선택합니다.

CBR과 VBR의 비트레이트 비교
[Fig 3-1] CBR과 VBR의 비트레이트 비교

● CBR (Constant Bitrate, 고정 비트레이트)

CBR은 전체 프레임의 데이터를 일정한 크기로 고정하여 전송하는 방식입니다. CBR을 선택하면 [대상 비트레이트]을 설정하여 전송할 데이터 크기를 설정합니다. 만일 대상 비트레이트를 2Mbps로 설정하였다면, 영상을 초당 약 2Mb의 크기로 전송합니다. 영상이 단조로워서 2Mbps이하의 영상이라도 2Mbps로 맞추어 전송하고, 2Mbps이상이 되는 영상은 압축하거나 프레임을 빼서 2Mbps로 맞추어 전송합니다. 이는 CBR의 옵션 중에 [인코딩 우선 순위]항목에서 설정할 수 있는데, 사용자는 [프레임 레이트]와 [압축]중에 선택할 수 있습니다. 인코딩 우선순위를 프레임 레이트로 설정한 경우, 영상 데이터가 설정한 [대상 비트레이트]보다 커진 경우, 영상 화질을 낮추어 대상 비트레이트에 맞게 조장합니다. 이렇게 최대한 프레임 레이트를 보장하도록 합니다.

프레임레이트 우선순위
[Fig 3-2] CBR의 인코딩 우선순위 - 프레임레이트

만일 사용자가 화질을 중요하게 생각한다면, 인코딩 우선 순위를 압축으로 설정합니다. 그러면 카메라 영상의 크기가 대상비트레이트보다 클 때, 최대한 화질을 그대로 유지해주는 대신 프레임 수를 조정하여 대상 비트레이트로 맞춥니다. 그러므로 인코딩 우선순위를 압축으로 설정한 상태에서 화면의 움직임이 많아져 데이터 양이 커지는 경우, 영상을 프레임을 누락시켜 대상 비트레이트를 맞추게 되므로 영상을 부자연스럽게 보일 수 있습니다.

인코딩 우선순위
[Fig 3-3] CBR의 인코딩 우선순위 - 압축

● VBR (Variable Bitrate, 가변 비트레이트)

VBR은 프레임의 데이터 크기를 고정하지 않고, 적은 데이터는 적은 데이터 그대로, 큰 데이터는 큰 데이터 그대로 보내는 방식입니다. 영상의 데이터 크기에 관계없이 사용자가 설정한 비디오 설정 (프레임 레이트, 화질 등)을 유지하면서 영상을 전송할 수 있게 합니다.

VBR
[Fig 3-4] VBR

삼성테크윈에서는 VBR기능을 더 효율적으로 사용할 수 있도록 [VBR+최대 비트레이트]로 제공하고 있습니다. [VBR+최대 비트레이트]방식은 VBR의 단점을 보완한 기능으로 데이터 크기를 가변적으로 전송하다가 영상의 데이터가 너무 커지면 제한하는 방법입니다. 데이터 크기가 급증하여 설정된 최대 비트레이트 이상 되면 설정되어 있는 최대비트레이트에 맞춰 전송하게 됩니다.

● 비트율 제어 선택

CBR의 경우 고정적인 데이터 크기를 가지므로 전체적인 시스템의 데이터 크기를 예측하기가 쉽습니다. 따라서 시스템을 관리하고 유지하는데 쉽다는 장점이 있지만 데이터가 적은 영상도 대상 비트레이트에 맞춰 전송하게 되므로 네트워크 망이나 저장공간에 쓸모 없는 소비가 생길 수 있습니다. 화질을 유지하면서 저장공간의 용량이나 대역폭의 효율적인 소비를 위해서는 VBR이 더 유용하지만 갑자기 영상이 복잡해지는 경우 데이터 크기가 급증하여 네트워크 망에 순간적으로 큰 부담을 줄 수 있으며 데이터 크기를 예측하기 어렵기 때문에 저장장치 용량을 구축하는데 어려움이 있습니다.

안정적인 시스템을 운영하려는 경우 CBR을 사용하는 것이 좋고, 효율적인 시스템을 운영하려는 경우에는 VBR을 사용하는 것이 좋은데, 급증되는 데이터가 걱정이 된다면 삼성 테크윈 VBR에서 제공하는 옵션인 최대 비트 레이트를 조정하여 그 문제를 해결할 수 있습니다.

● 비트율 제어 설정

삼성 네트워크 카메라의 경우, 웹 뷰어에서 비트율 제어를 설정 할 수 있습니다. [웹 뷰어] > [Setup] > [Video & Audio] > [비디오 프로파일]에서 각 프로파일 별로 [비트율 제어] 방식을 선택할 수 있습니다.

비트율제어 설정하기
[Fig 3-5] 웹뷰어에서 비트율 제어 설정하기

스마트 코덱


스마트 코덱은 영상에서 사용자가 감시를 원하는 부분과 관심 대상이 아닌 부분의 압축을 다르게 하여 데이터를 효과적으로 사용하는 방법으로 일부 삼성 테크윈 네트워크 카메라에서 지원하는 기능입니다. 스마트 코덱을 사용하면 사용자가 설정한 부분은 덜 압축하여 선명하게 보고, 사용자가 설정하지 않은 부분은 압축을 많이 하여 화질을 낮추어 전송합니다. 이렇게 관심 대상의 부분의 선명한 영상을 얻으면서 전체적인 데이터 크기는 줄일 수 있습니다.

● 스마트 코덱 영역 설정

스마트 압축의 영역 설정은 수동 영역 지정과 얼굴 검출 영역 지정, 두 가지 타입이 있습니다.

수동 영역 지정

스마트 코덱 - 수동 영역 지정
[Fig 4-1] 스마트 코덱 - 수동영역 지정

사용자는 전체 영상에서 선명하게 볼 영역을 수동으로 설정합니다. 만일 촬영하고 있는 영역에 관심 대상이 아닌 영역이 포함되어 있는 경우, 스마트 코덱 설정을 통해 해당 영역에서 발생되는 무관한 움직임으로 인해 대역폭이 증가하는 것을 방지할 수 있습니다.

얼굴 검출 영역 지정

스마트 코덱 - 얼굴 검출 영역 지정
[Fig 4-2] 스마트 코덱 - 얼굴 검출 영역 지정

사용자는 전체 영상의 압축을 높여 화질을 낮춘 상태에서 영상에 얼굴부분이 감지되면 얼굴부분의 압축을 낮춰 선명한 얼굴을 볼 수 있도록 합니다. 영상에서 사람의 얼굴 정보만 관심이 있는 경우에 효율적으로 영상을 운영할 수 있습니다.

● 스마트 코덱 설정

삼성 네트워크 카메라의 웹 뷰어에서 스마트 코덱을 설정 할 수 있습니다.

[웹 뷰어] > [Setup] > [Video & Audio] > [비디오 프로파일]의 [스마트 코덱]에서 사용 여부를 선택합니다. [스마트 코덱]항목은 해당 프로파일이 H.264코덱을 사용하고, 비트율 제어 방식이 CBR일 경우에만 활성화됩니다. (CBR설정 후, 대상 비트율을 낮춥니다.)

다음, [Setup] > [Video & Audio] > [스마트 코덱 설정]에서 화질과, 관심 영역을 설정합니다.

스마트 코덱 설정
[Fig 4-3] 웹뷰어에서 스마트 코덱 설정하기


멀티 크롭 스트리밍


멀티 크롭 스트리밍은 메가픽셀 카메라에서 효과적인 감시를 위한 기술입니다. 하나의 카메라를 여러 사람이 감시하려 하고, 각각의 관심 영역이 다른 경우, 화면을 다른 사람들과 공유하고 있어 카메라를 움직일 수 없고 설치 카메라 수를 늘릴 수 없을 때, 멀티 크롭 스트리밍을 사용하면 한대의 카메라로 전체 화면 중 내가 원하는 영역만 따로 선택하여 볼 수 있습니다.

멀티 크롭 스트리밍
[Fig 5-1] 멀티 크롭 스트리밍

또한 카메라의 전체 영상과 화면의 일부 영역을 담고 있는 영상을 별도의 스트림으로 동시 전송이 가능합니다. 고화소 카메라로 넓은 지역을 찍고 있을 때, 멀티 크롭 스트리밍 기능을 이용하면 일부 영역을 줌인한 것과 같은 효과를 줄 수 있어 효율적인 감시 시스템을 구성할 수 있습니다.

● 디지털 줌과 멀티 크롭 스트리밍의 데이터 크기 비교

고화소 카메라가 비추고 있는 특정 영역을 줌인하여 보는 경우라도 카메라는 전체 화면의 데이터를 보내고, 해당 영역을 크롭하여 스트리밍하는 경우에는 카메라가 해당 영역의 데이터만 보내게 되므로 적은 데이터로 같은 영상을 볼 수 있습니다.

아래 그림은 같은 화면을 디지털 줌인 했을 경우와 크롭 스트리밍 한 경우의 영상과 데이터 크기를 측정한 화면입니다.

디지털 줌과 멀티크롭 스트리밍의 데이터 크기 비교
[Fig 5-2] 디지털줌과 크롭인코딩으로 설정한 영상의 데이터 크기 비교

동일한 영상을 적은 데이터로 모니터링 할 수 있는 것을 확인할 수 있습니다.

● 멀티 크롭 스트리밍 설정

삼성 네트워크 카메라의 웹 뷰어에서 각 프로파일 별로, 멀티 크롭 스트리밍을 설정 할 수 있습니다.

[웹 뷰어] > [Setup] > [Video & Audio] > [비디오 프로파일]에서 각 프로파일 별로 [크롭 인코딩] 사용 여부를 선택할 수 있습니다. 크롭 인코딩을 [사용함]으로 선택하면 [영역 설정]버튼을 눌러 영역 설정을 할 수 있습니다.

멀티 크롭 스트리밍 영역 설정
[Fig 5-2] 웹뷰어에서 멀티 크롭 스트리밍 영역 설정

지정할 영역의 비율을 선택하고, 화면 위에 마우스를 드래그하여 원하는 크롭 인코딩 영역을 지정하면 됩니다.