Full HD H.264 카메라를 이용한 감시 시스템의 다채널 Client Viewer 구현
상태바
Full HD H.264 카메라를 이용한 감시 시스템의 다채널 Client Viewer 구현
  • 이수진
  • 승인 2012.04.02 00:00
  • 댓글 0
이 기사를 공유합니다

김 규 석 
(주)우리씨에스티 R&D 1팀 주임연구원


CCTV 시스템은 현재 도로 교통감시, 아파트 방범, 차량 번호판 인식 등 많은 분야에서 사용되고 있다. 사용되는 여러 분야에서 실제 물체와 감시 영상의 오차를 줄이기 위해 좀 더 향상된 화질의 영상을 필요로 하고 있다. 디지털 카메라가 보편화 되고 또한 급속한 영상 압축 기술의 발전으로 인해 고화질의 영상을 지원하는 카메라가 빠르게 출시되고 있다. 현재 보편화된 영상 압축 기술 중 가장 뛰어난 성능을 발휘하는 H.264를 지원 하는 카메라를 사용한 CCTV 감시 시스템이 늘고 있는 것이 현실이다. 본 고에서는 H.264를 이용하여 고화질의 영상을 지원하는 여러 카메라를 동시에 원격으로 감시할 수 있는 Client Viewer 를 구현 하였다. 구현한 Client Viewer 는 실시간 재생 기능 및 녹화 기능을 지원 하며 녹화된 영상을 검색하고 재생하는 DVR 기능도 지원한다.


20년 전의 CCTV 시스템은 아날로그 카메라를 동축 케이블로해 VTR/VCR에 연결한 시스템이었다. 아날로그 방식의 비디오테이프를 이용하기 때문에 영상 압축 및 관리에 대한 개념이 없었다. 최대 8시간 녹화를 끝내면 테이프를 교체해야 했고 원하는 영상을 찾기 위해서는 검색 대신 되감기와 재생을 반복해야 했다. 아날로그 시대가 지나가고 모든 것이 디지털화됨에 따라 CCTV 시스템도 디지털화 되었다.
아날로그 영상을 디지털 장비에 기록하기 때문에 테이프가 필요하지 않게 되었고 또한 다수의 카메라에서 입력되는 영상정보를 DVR에서 디지털화되어 영상의 관리가 가능해 졌다.
또한 한번 기록된 영상은 무한 반복 및 편집이 가능해 졌으며, 보다 간편한 방식으로 원하는 영상을 찾을 수 있게 되었다. 또한 DVR에 네트워크 기능을 추가 하여 디지털 영상 신호를 LAN/WAN이 설치된 어느 곳이나 전송 할 수 있게 되었다[1]. 여기에 영상 압축 기술이 향상 되고 디지털 카메라의 개발로 인하여 고화질의 영상을 실시간으로 전 세계 어느 곳이나 전송되며 또한 지정된 서버에서 데이터를 관리 할 수 있게 되었다. 그리고 인터넷이 설치된 어느 곳에서나 영상을 보고 편집 할 수 있게 되었다.
하드웨어 및 소프트웨어 기술에 있어서의 진화와 유비쿼터스 인터넷 망 시설 및 광역의 무선 네트워크의 발달과 함께 네트워크 비디오 감시 시스템(Networked Video Surveillance)의 출현이 가능케 되었다[2]. CCTV 시스템이 활용되는 분야는 차량 번호판 인식, 실내 화재 및 연기 감지, 도로 교통 감시등 여러 분야에서 사용되고 도시의 발달과 범죄의 다양성으로 인해 여러 분야에서 좀 더 나은 화질의 감시 카메라의 필요성이 대두되고 있다.
영상 압축 기술 중 현재 가장 압축률이 뛰어나며 원본 화질의 열화가 크게 발생 하지 않는 H.264의 압축 기술이 CCTV 카메라에 활용되면서 사용자들의 필요성을 충족시키고 있다.

개요
본 고에서 구현된 Client Viewer 는 네트워크 감시 시스템에서 사용되며 네트워크 카메라에 접속하여 카메라에서 수신되는 H.264 영상을 실시간으로 재생하는 기능과 사전에 저장된 영상을 검색하여 재생하는 기능을 포함하며 4채널 화면 분할 화면을 제공하며, 카메라가 설치된 위치, 현재 시간 등을 화면에 표시하여 효율적이며 편리한 감시 환경을 제공해 준다. 본 고의 Client Viewer 는 영상감시, 교통관리, 환경/방재감시, 재난/재해용 등의 다양한 응용 분야의 실시간 감시 시스템에 사용될 수 있다.
본 고의 Client Viewer 는 크게 네트워크 카메라로부터 영상을 수신하여 실시간으로 재생하는 실시간 재생 관련 모듈과 녹화된 영상을 재생하는 DVR 재생 관련 모듈로 나뉘어 ActiveX SDK 형태로 구현되어 추후 웹에서의 Client Viewer 구현에도 용이하게 사용될 수 있다.

Client Viewer 의 구성

가. 개발 환경
1. 개발 툴: MS Visual Studio 2008 (Service Pack 1)
2. OS: Windows XP 이상 (Windows 7에서 개발)
3. Direct Show[3] 버전: Microsoft Platform(Window) SDK v6.1
4. DirectX SDK 버전: Microsoft DirectX SDK (March 2009)
5. 개발 H/W 사양
   - CPU: Intel짋 Core™2 Quad CPU Q9550 @ 2.83Ghz
   - RAM: 4.00 GB
   - Video: NVIDIA Geforce 9500 GT 500MB
6. Full HD급 영상을 4개를 돌리기 위한 최소 사양
   - CPU: Intel짋 Core™ i7 (860) Quad 2.80 이상
   - Video: Radeon HD4870 1GB
   - RAM: 4.00 GB 이상

나. 실시간 재생 관련 모듈

실시간 재생 모듈은 설치된 IP 카메라로부터 HTTP, RTSP 등의 통신 방법을 이용하여 H.264의 실시간 영상을 전송 받아 재생하는 것과 관련된 기능을 포함한다. 카메라의 지원 해상도에 따라 최대 Full HD(1920x1080)까지 재생이 가능하며 컴퓨터의 사양에 따라 Full HD 급 영상을 4개까지 동시에 재생할 수 있다. 실시간 재생 모듈은 영상을 재생하기 위한 영상 재생 모듈, 이미지 캡처를 위한 이미지 캡처 모듈, 녹화를 위한 녹화 모듈, 재생 화면에 시간 등의 정보를 오버레이 시키기 위한 모듈로 구성된다.

[그림 1] 실시간 재생 관련 모듈-블록다이어그램


[그림 2] 필터 구성도

화면 캡처 모듈은 초당 30프레임씩 총 3초간 90프레임 까지 연속 저장이 가능하며 녹화모듈은 H.264 스트림을 AVI 파일형식으로 분 단위로 저장되며 카메라 명, 녹화 날짜, 녹화 시간 정보를 토대로 녹화파일명이 결정 되고 파일이 생성 된다. 본 고에서 구현된 Client Viewer를 통해 최대 4개의 영상이 동시에 녹화 가능하다. 재생 도중 네트워크 오류로 접속이 끊긴 경우 지정된 대기 시간동안 패킷이 전송되었는지 확인한 후 다시 접속을 시도한다.
실시간 재생을 위한 DirectShow의 필터 구성은 네트워크로부터 H.264 스트림을 받아오기 위한 네트워크 소스필터[4], H.264로 인코딩된 영상을 재생하기 위한 H.264 디코더 필터, 이미지 캡처를 하기 위한 SampleGrabber 필터, 녹화를 하기 위한 Dump 필터, 그리고 렌더링을 위한 렌더러 필터로 구성되어 있다.

[그림 1]은 실시간 재생관련 모듈을 블록다이어그램으로 나타낸 그림이고 [그림 2]는 그 필터 구성도를 나타낸 그림이다.

다. DVR 재생 관련 모듈
DVR 재생 관련 모듈은 녹화된 영상을 재생하는 것과 관련된 기능을 포함 한다. [그림 4]에서와 같이 사용자는 녹화 날짜, 시간 등을 지정하여 검색할 수 있다. DVR 재생 관련 모듈은 크게 재생 화면 제어를 위한 컨트롤 기능과 저장된 영상을 검색하는 DVR 검색기능으로 구성된다. DVR 검색 기능을 통해 사용자는 원하는 날짜와 시간을 선택 하여 녹화된 영상을 재생 할 수 있다. DVR 컨트롤 기능은 앞으로 감기, 뒤로 감기, 일시 정지, 한 프레임씩 이동하기 등의 기능을 지원 한다. 지정된 파일의 재생이 끝나면 그 이후에 녹화된 영상이 자동으로 재생된다.

라. 구성 SDKs



Client Viewer 의 실행

가. 환경 설정

Client Viewer 를 실행하기 전에 각각의 카메라의 환경을 설정 하여야 하며 카메라 환경 설정 내용은 아래와 같다.
1. IPAddress=192.168.1.1: 네트워크 카메라의 IP 주소
2. Port=80: 네트워크 카메라의 포트 번호
3. UserID=guest: 사용자 ID
4. UserPass=guest: 사용자 패스워드
5. StreamUrl=VideoInput/1/h264/1: 스트림 주소
6. NIC=192.168.1.1: NIC 주소
7. SavePath=Cam1: 녹화되는 폴더 경로
8. OverlayText=HD4000: 오버레이 시킬 텍스트 내용
9. RTP=1: RTP 사용 여부 결정
10. UDP_Unicast=0: UDP_Unicast 사용 여부 결정
11. UDP_Multicast=0: UDP_Multicast 사용 여부 결정
12. SSL=0: SSL 사용 여부 결정
13. Over_RTSP=0: Over_RTSP 사용 여부 결정
14. HTTP=1: HTTP 사용 여부 결정
15. TextPosition=0: 오버레이 시킬 텍스트 위치 지정  (0-LeftTop, 1-LeftBottom, 2-RightBottom, 3-RightTop, 4-텍스트제거)
16. RecLength=30: 최대 녹화 시간 지정 (단위:분)
17. NetworkErrChk=30: 네트워크 에러 시 대기시간 (단위:초)

나. Client Viewer 의 실행

Client Viewer 를 실행하여 카메라를 선택한 후 Connect 버튼을 누르면 환경 설정에서 설정된 IP 카메라로부터 H.264 스트림을 받아와 영상을 재생 한다. [그림 3]은 4개의 실시간 영상을 동시에 재생한 그림이다. 'Cam 선택' Radio 버튼으로 카메라를 선택 할 수 있으며 '모드 선택' Radio 버튼을 사용하여 실시간 재생과 DVR 재생을 선택 할 수 있다.


[그림 3] 4개의 실시간 영상 재생 화면


[그림 4] 스케줄 표


[그림 5] DVR 재생 실행 예

실시간 재생 화면의 Connect 버튼은 선택한 카메라를 접속하는 버튼이며 Disconnect는 해제하는 버튼이며 OneCapture 는 이미지를 한 장 캡처 하는 버튼이다.
Capture 버튼은 초당 30프레임씩 90프레임을 연속 캡처하는 버튼이며 Record 와 RecordStop 은 녹화 시작과 녹화를 중지하기 위한 버튼이다.
DVR 재생 화면의 Open 버튼 누르면 [그림 4]의 스케줄 표가 나타난다. 해당하는 날짜의 폴더에 녹화된 영상이 존재 하면 캘린더에 진하게 표시되며 원하는 날짜를 클릭하면 저장된 시간 별로 리스트에 표시 된다. 원하는 시간을 더블 클릭 하여 녹화된 영상을 재생할 수 있다. [그림 5]는 DVR 재생을 실행한 예 이다.

결론

본 고에서는 H.264 IP 카메라로부터 고해상도(Full HD)의 인코딩된 스트림을 실시간으로 전송 받아 재생하고 영상을 저장하는 기능과 로컬에 저장된 영상을 검색하여 재생하는 DVR 기능을 포함하는 Client Viewer 를 구현하였다. IP 카메라 네트워크 기술이 최근 급속히 발전해 원격 영상 감시 시스템 분야에서 사용이 크게 확대되고 있고, 보안이 중요시 되는 공간에서 고성능 감시 시스템의 필요성이 급격이 커지고 있다. 본 고의 Client Viewer 의 모든 기능은 ActiveX SDK 형태로 구현되었기 때문에 웹에 기반을 둔 원격 감시 시스템의 Client Viewer 에서도 용이하게 사용될 수 있으며 영상감시용, 교통관리용, 환경/방재감시용, 재해/재난용 등의 다양한 감시 시스템을 구성하는데 사용될 수 있다. 더 나아가 요즘 더욱 중요성이 강조되는 가정 내 사고 감시 시스템 분야에도 적용 가능하다[5].
카메라가 위치한 장소, 현재 시각 등의 정보를 화면에 표시하여 편리하고 효율적인 감시 환경을 제공할 수 있다. 추후에 카메라의 오디오 입출력 포트를 사용하여 보안기능을 강화하면 더 많은 감시 시스템 응용 분야에서 사용될 수 있으며 무인 민원시스템 등의 다양한 감시 시스템으로 확장되어 사용할 수 있을 것으로 예상된다.


[참고문헌]

[1] C.Micheloni, G.L. Foresti, L. Snidaro "A network of co-operative cameras for visual surveillance," IEEE Proc. of Visual Image Signal Porcessing. vol. 152, no.2, 2005.
[2] S. Patil, "Networked Video Surveillance System," white paper, http://www.indiasafe.com, Jan. 2009.
[3] http://msdn.microsoft.com/en-us/library/dd373389(VS.85).aspx
[4] SANYO Electric Co., Ltd., "H.264 Streaming Communication Specification,"Oct. 2008.
[5] T. Zahariadis, K. Groneberg and T. Chiew, "Efficient Home Video Surveillance Platform," in Proc. IWSSIP'06, pp.143-146, 2006.

 



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
0 / 400
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.