이하에 본 발명에 관한 동화상 배신 장치, 동화상 배신 시스템 및 동화상 배신 프로그램의 실시 형태를 도면에 기초하여 상세하게 설명한다. 또한, 이 실시 형태에 의해 본 발명이 한정되는 것은 아니다.
실시 형태 1
우선, 본 실시 형태 1에 관한 동화상 배신 시스템의 시스템 구성에 대해서 설명한다. 도 1은 본 실시 형태 1에 관한 동화상 배신 시스템의 시스템 구성을 도시하는 기능 블록도이다.
동 도면에 도시하는 바와 같이 이 동화상 배신 시스템은 인코더(10∼12)가 각각 대응하는 카메라(13∼15)로부터 화상 데이터를 수신하고, 수신한 화상 데이터를 멀티캐스트한다.
이 멀티캐스트는 복수의 상대를 지정하여 데이터를 송신하는 것이며, 멀티캐스트된 데이터는 일단 라우터(21)에 송신되고, 라우터(21)로부터 지정된 동화상 서버(1∼3) 중 어느 하나에 송신된다.
그리고, 라우터(21)로부터 화상 데이터를 수신한 동화상 서버(1∼3)는 수신한 화상 데이터를 도시하지 않는 소정의 클라이언트 단말에 스트리밍 배신하는 시스템이다.
또한, 인터넷(40)에 접속된 재해 정보 통지 서버(30)는 재해를 검지하였을 때에, 검지한 재해 위치를 동화상 서버(1)에 송신하고, 동화상 서버(1)는 수신한 재해 위치를 기억한다.
그리고, 동화상 서버(2, 3) 중 어느 하나에 장해가 발생한 경우에는, 동화상 서버(1)가 장해가 발생한 동화상 서버를 담당하고 있었던 인코더의 정보와 재해 정보 통지 서버(30)로부터 수신한 재해 위치를 토대로 인코더의 우선 순위를 결정한다.
그런데, 동화상 서버(1)는 장해가 발생한 동화상 서버가 담당하고 있었던 인코더를 모두 담당할 수 없는 경우에는, 우선 순위가 높은 인코더를 우선하여 담당 하고, 담당할 수 없는 인코더에 대해서는 정지 요구를 송신한다.
다음에, 인코더(10∼12)의 구성에 대해서 설명한다. 또한, 이들의 인코더(10∼12)는 모두 동일한 구성을 가지고 있기 때문에 여기서는 인코더(10)를 예로 들어 설명한다.
인코더(10)는 인코더(10)에 대응하는 카메라(13)로부터 화상 데이터를 수신하고, 수신한 화상 데이터를 스트림 데이터로 하여 멀티캐스트할 때에, MPEG 데이터에 인코더(10)의 현재 위치에 대한 위도, 경도 및 현재 인코더(10)가 이용하고 있는 카메라(13)의 방향에 따른 정보를 나타내는 인코더 정보를 부여한다. 이하, 인코더의 현재 위치에 대한 위도, 경도 및 현재 인코더가 이용하고 있는 카메라의 방향에 따른 정보를 통합하여 인코더 정보로 표기한다.
인코더(10)는 입력 접수부(16)와, 위치 정보 송수신부(17)와, 제어부(18)와, 기억부(19)와, 통신부(20)를 갖는다.
입력 접수부(16)는 카메라(13)로부터 화상 데이터를 수신하고, 수신한 화상 데이터를 제어부(18)에 전달한다. 제어부(18)는 MPEG 데이터 작성부(18a)와, XML 데이터 작성부(18b)와, 위치 정보 처리부(18c)와, 데이터 송신부(18d)를 갖는다.
MPEG 데이터 작성부(18a)는 입력 접수부(16)로부터 수취한 화상 데이터로부터 MPEG 데이터를 작성한다. 또한, MPEG 데이터 작성부(18a)는 기억부(19)로부터 XML(eXtensible Markup Language) 데이터(19a)를 취득한다.
그리고, MPEG 데이터 작성부(18a)는 도 2에 도시하는 바와 같이 작성한 MPEG 데이터(103)에 UDP(User Datagram Protocol) 헤더(100), RTP(Real-time Transport Protocol) 헤더(101) 및 취득한 XML 데이터(102)를 부여하고, 스트림 데이터로서 데이터 송신부(18d)에 전달한다.
XML 데이터 작성부(18b)는 위치 정보 처리부(18c)가 특정하는 인코더(10)의 인코더 정보를 토대로 위치 정보를 포함한 XML 데이터를 작성한다.
도 3은 XML 데이터 작성부(18b)가 XML에 의해 인코더의 위치 정보 및 카메라의 방향에 따른 정보를 기술한 XML 데이터의 일례이다. 동 도면에 있어서 「longitude="135.75"」는 인코더의 위도를 나타내고, 「latitude="35.5"」는 인코더의 경도를 나타내며, 「altitude="100"」은 인코더가 이용하는 카메라의 방향을 나타낸다.
또한, 도 3에서는 이용하는 카메라의 방향이 고정된 고정 카메라의 경우를 나타내고 있지만, 카메라의 방향이 이동하는 이동식 카메라의 경우에는 카메라의 방향에 대한 이동 범위가 기술된다.
그리고, XML 데이터 작성부(18b)는 작성한 XML 데이터를 기억부(19)에 XML 데이터(19a)로서 기억시킨다.
위치 정보 처리부(18c)는 위치 정보 송수신부(17)를 이용하여 기지국과 통신하고, 인코더(10)의 현재 위치에 대한 위도 및 경도를 특정한다. 또한, 위치 정보 처리부(18c)는 카메라(13)의 방향에 따른 정보를 카메라(13)로부터 수신한다.
그리고, 위치 정보 처리부(18c)는 인코더(10)의 위치 정보 및 카메라의 방향에 따른 정보를 XML 데이터 작성부(18b)에 전달한다.
데이터 송신부(18d)는 MPEG 데이터 작성부(18a)로부터 수취한 스트림 데이터 를 통신부(20)를 통해 멀티캐스트한다. 또한, 데이터 송신부(18d)는 통신부(20)를 통해 동화상 서버(1)로부터 정지 요구를 수신한 경우에는 인코더(10)를 정지시킨다.
다음에, 동화상 서버(1∼3)에 대해서 설명한다. 동화상 서버(1∼3)는 담당하는 인코더로부터 스트림 데이터를 수신하였을 때에, 소정의 클라이언트 단말에 스트리밍 배신을 행한다.
또한, 동화상 서버(1)는 동화상 서버(2, 3)에 장해가 발생하였을 때에, 장해가 발생한 동화상 서버가 담당하고 있었던 인코더를 동화상 서버(1)가 대신하여 담당한다.
그러나, 장해가 발생한 동화상 서버가 담당하고 있었던 인코더를 모두 동화상 서버(1)가 대신하여 담당할 수 없는 경우가 있다.
따라서, 동화상 서버(1)는 각 인코더(10∼12)의 위치 정보와 재해 정보 통지 서버(30)로부터 송신되는 재해 위치를 토대로 하여 재해 위치에 가까운 인코더로부터 순서대로 우선 순위를 높게 설정한다. 그리고, 동화상 서버(1)는 설정한 우선 순위를 토대로 하여 장해가 발생한 동화상 서버 대신에 담당하는 인코더를 순서대로 선택한다.
또한, 재해 위치와 거리가 같은 인코더가 복수개 존재하는 경우에는 인코더가 이용하는 카메라의 방향을 더 고려하여 우선 순위를 설정한다. 구체적으로는 카메라의 방향이 재해 위치를 향하고 있는 인코더를 우선한다.
다음에, 동화상 서버(1)의 구성에 대해서 설명한다. 동화상 서버(1)는 통신 부(4)와, 제어부(5)와, 기억부(9)를 갖는다. 또한, 제어부(5)는 축퇴 처리부(6)와, 관리 서버부(7)와, 데이터 송수신부(8)를 갖는다.
축퇴 처리부(6)는 동화상 서버(2, 3)에 장해가 발생하였을 때에, 장해가 발생한 동화상 서버가 담당하고 있었던 인코더의 우선 순위를 결정하고, 대신하여 담당하는 인코더를 선택한다. 축퇴 처리부(6)는 장해 감지부(6a)와, 인계 요구부(6b)와, 인코더 선택부(6c)를 갖는다.
장해 감지부(6a)는 동화상 서버(2, 3)에 장해가 발생하였을 때, 그 장해를 감지하고, 장해가 발생한 동화상 서버를 특정한다.
인계 요구부(6b)는 장해 감지부(6a)가 장해를 감지하였을 때에, 기억부(9)에 기억되어 있는 관리 정보(9b)를 토대로 하여 장해가 발생한 동화상 서버가 담당하고 있었던 인코더로부터 멀티캐스트되는 스트리밍 데이터를 취득하기 위해 인계 요구를 라우터(21)에 송신한다.
인코더 선택부(6c)는 장해가 발생한 동화상 서버가 담당하고 있었던 인코더가 송신하는 스트림 데이터에 부여되어 있는 위치 정보와, 기억부(9)에 기억된 재해 위치 데이터(9c)를 토대로 장해가 발생한 동화상 서버 대신에 담당하는 인코더를 선택한다. 또한, 인코더 선택부(6c)는 재해 위치에 가까운 인코더로부터 순서대로 선택하게 된다.
그런데, 재해 위치와 거리가 같은 인코더가 복수개 존재하는 경우에는, 인코더가 이용하는 카메라의 방향이 재해 위치를 향하고 있는 인코더를 우선한다.
관리 서버부(7)는 정기적으로 동화상 서버(2, 3)와 통신하고, 각 동화상 서 버(2, 3)가 담당하고 있는 인코더와, 스트리밍 배신의 대상이 되어 있는 클라이언트 단말을 특정한다. 그리고, 관리 서버부(7)는 각 동화상 서버가 담당하는 인코더의 정보와 클라이언트 단말의 정보를 기억부(9)에 관리 정보(9b)로서 기억시킨다.
또한, 관리 서버부(7)는 재해 정보 통지 서버(30)로부터 재해 위치에 따른 정보를 수신하고, 수신한 재해 위치에 따른 정보를 재해 위치 데이터(9c)로서 기억부(9)에 기억시킨다.
데이터 송신부(8)는 인코더로부터 멀티캐스트되는 스트림 데이터를 수신하고, 수신한 스트림 데이터를 기억부(9)에 스트림 데이터(9a)로서 일단 기억시키며, 소정의 클라이언트 단말에 기억시켜 둔 스트림 데이터(9a)를 스트리밍 배신한다.
다음에, 도 1에 도시한 인코더(10)가 위치 정보와 이용하는 카메라의 방향에 따른 정보를 취득하고, 취득한 정보를 토대로 XML 데이터를 작성하는 처리 순서에 대해서 설명한다. 도 4는 인코더(10)가 위치 정보와 카메라 방향에 따른 정보를 취득하고, 취득한 정보를 토대로 XML 데이터를 작성하는 처리 순서를 도시하는 흐름도이다. 또한, 이 처리는 인코더(10)의 동작 중에 반복 실행된다. 동 도면에 도시하는 바와 같이 위치 정보 처리부(18c)가 위치 정보 송수신부(17)를 이용하여 가장 가까운 기지국에 신호를 송신하고(단계 S101), 위치 정보 송수신부(17)를 이용하여 기지국으로부터 응답 신호를 수신한다(단계 S102).
그리고, 위치 정보 처리부(18c)는 수신한 응답 신호를 토대로 인코더(10)의 위도와 경도를 특정한다(단계 S103). 또한, 위치 정보 처리부(18c)는 카메라(13)로부터 카메라의 방향을 나타내는 카메라 정보를 수신한다(단계 S104). 그리고, 위치 정보 처리부(18c)는 인코더(10)의 위도, 경도 및 카메라(13)의 방향을 인코더 정보로서 XML 데이터 작성부(18b)에 전달한다(단계 S105). 그리고, XML 데이터 작성부(18b)는 수취한 인코더 정보를 토대로 XML 데이터를 작성하고(단계 S106), 작성한 XML 데이터를 기억부(19)에 XML 데이터(19a)로서 기억시킨다(단계 S107).
다음에, 인코더(10)가 스트림 데이터를 작성하고, 작성한 스트림 데이터를 멀티캐스트하는 처리 순서에 대해서 설명한다. 도 5는 인코더가 스트림 데이터를 작성하고, 작성한 스트림 데이터를 멀티캐스트하는 처리 순서를 도시하는 흐름도이다.
동 도면에 도시하는 바와 같이 입력 접수부(16)가 카메라(13)로부터 화상 데이터를 수신하고(단계 S201), 수신한 화상 데이터를 MPEG 데이터 작성부(18a)에 전달한다(단계 S202). 그리고, MPEG 데이터 작성부(18a)는 기억부(19)에 기억된 XML 데이터(19a)를 취득하고(단계 S203), 화상 데이터를 토대로 MPEG 데이터를 작성한다(단계 S204).
그리고, MPEG 데이터 작성부(18a)는 MPEG 데이터에 XML 데이터와 UDP 헤더와 RTP 헤더를 부여한 스트림 데이터를 작성하고(단계 S205), 작성한 스트림 데이터를 데이터 송신부(18d)에 전달하며(단계 S206), 데이터 송신부(18d)가 통신부(20)를 통해 스트림 데이터를 멀티캐스트한다(단계 S207).
이와 같이 인코더(10)에서는 미리 위치 정보 처리부(18c)가 인코더에 따른 위치 정보를 취득하고, MPEG 데이터 작성부(18a)가 카메라(13)로부터 송신되는 화상 데이터로부터 MPEG 데이터를 작성하며, 작성한 MPEG 데이터에 인코더의 위치 정보를 부여한 스트림 데이터를 작성하고, 데이터 송신부(18d)가 통신부(20)를 통해 스트림 데이터를 멀티캐스트한다.
다음에, 재해 정보 통지 서버(30)가 재해를 검지하고, 검지한 재해 위치를 동화상 서버(1)에 송신하는 처리 순서에 대해서 설명한다. 도 6은 재해 정보 통지 서버(30)가 재해를 검지하고, 검지한 재해 위치를 동화상 서버에 송신하는 처리 순서를 도시하는 흐름도이다. 또한, 도 6에 도시한 흐름도는 재해 정보 통지 서버(30)가 재해를 검지할 때마다 반복해서 실행된다.
동 도면에 도시하는 바와 같이 어떤 장소에서 재해가 발생하였을 때에 재해 정보 통지 서버(30)가 재해를 검지하고(단계 S301), 재해가 발생한 장소를 특정한다(단계 S302).
그리고, 재해 정보 통지 서버(30)는 특정한 재해 발생 장소를 동화상 서버(1)의 관리 서버부(7)에 송신하고(단계 S303), 관리 서버부(7)가 재해 발생 장소를 수신하며(단계 S304), 수신한 재해 발생 장소를 재해 위치 데이터(9c)로서 기억부(9)에 기억시킨다(단계 S305).
다음에, 동화상 서버(2, 3)에 장해가 발생하였을 때에, 동화상 서버(1)가 장해가 발생한 동화상 서버를 담당하고 있었던 인코더의 우선 순위를 결정하고, 대신하여 담당하는 인코더를 선택하는 처리 순서에 대해서 설명한다. 도 7은 동화상 서버(2, 3)에 장해가 발생하였을 때에, 동화상 서버(1)가 장해가 발생한 동화상 서버를 담당하고 있었던 인코더의 우선 순위를 결정하고, 대신하여 담당하는 인코더를 선택하는 처리 순서를 도시하는 흐름도이다.
동 도면에 도시하는 바와 같이 장해 감지부(6a)가 장해를 감지하고, 장해가 발생한 동화상 서버를 특정하며(단계 S401), 인계 요구부(6b)가 장해가 검지된 서버와 관리 정보(9b)를 토대로 하여 장해가 발생한 동화상 서버가 담당하는 복수의 인코더를 특정한다(단계 S402).
그리고, 인계 요구부(6b)는 특정한 복수의 인코더로부터 스트림 데이터를 수신하기 위해 인계 요구를 라우터(21)에 송신하고(단계 S403), 인코더 선택부(6c)가 라우터(21)로부터 복수의 스트림 데이터를 수신한다(단계 S404).
그리고, 인코더 선택부(6c)는 스트림 데이터에 포함되는 XML 데이터의 위치정보와 재해 위치 데이터(15c)를 토대로 하여 재해 장소에 가까운 인코더로부터 순서대로 우선 순위를 결정한다(단계 S405). 또한, 재해의 발생 장소와 거리가 같은 인코더가 복수개 존재하는 경우에는, 인코더에 대하여 재해가 발생하고 있는 방향과, 인코더 정보에 포함되는 카메라의 방향이 보다 가까운 인코더를 우선한다.
그리고, 인코더 선택부(6c)는 우선 순위가 높은 순서대로 인코더를 하나 선택하고(단계 S406), 축적 여력이 있는지 여부를 확인한다(단계 S408).
여기서, 축적 여력은 기억부(9)가 스트림 데이터(9a)로서 인코드로부터 송신되는 스트림 데이터를 기억할 수 있는 나머지량이다.
기억부(9)에 축적 여력이 없는 경우에는(단계 S408, No), 인코더 선택부(6c)가 담당할 수 없는 인코더에 정지 요구를 송신한다(단계 S407).
한편, 기억부(9)에 축적 여력이 있는 경우에는(단계 S408, Yes), 선택한 인코더에 대응하는 클라이언트 단말에 스트림 데이터를 스트리밍 배신한다(단계 S409).
그리고, 모든 인코더를 선택하였는지 여부를 확인한다(단계 S410). 모든 인코더를 선택하지 않은 경우에는(단계 S410, No), 단계 S406으로 이행한다. 한편, 모든 인코더를 선택한 경우에는(단계 S410, Yes) 처리를 종료한다.
전술한 바와 같이 본 실시 형태 1에 관한 스트리밍 배신 시스템에서는 MPEG 데이터 작성부(18a)가 카메라로부터 수신한 화상 데이터를 MPEG 데이터로 변환하고, 변환한 MPEG 데이터에 위치 정보를 첨부한 스트림 데이터를 작성하며, 데이터 송신부(18d)가 스트림 데이터를 멀티캐스트한다.
그리고, 동화상 서버(2, 3)에 장해가 발생한 경우에 동화상 서버(1)에서는 장해 감지부(6a)가 장해를 감지하고, 인계 요구부(6b)가 라우터(21)에 인계 요구를 송신하며, 인코더 선택부(6c)가 장해가 발생한 동화상 서버가 담당하고 있었던 인코더로부터 송신되는 스트림 데이터를 수신한다.
그리고, 인코더 선택부(6c)가 수신한 스트림 데이터에 포함되는 위치 정보와, 재해 위치 데이터(15c)를 토대로 하여 재해 위치에 가까운 인코더가 우선되도록 담당하는 인코더를 선택하고 있다.
그 때문에, 장해가 발생한 동화상 서버 대신에 담당하는 인코더의 우선 순위를 시시 각각으로 변화하는 재해 등의 위치 맞춤에 동적으로 변경할 수 있다.
또한, 본 실시 형태(1)에서는 동화상 서버(1)가 동화상 서버(2, 3)를 관리하고, 동화상 서버(2, 3)에 장해가 발생하였을 때는, 동화상 서버(1)가 장해가 발생한 동화상 서버를 담당하고 있었던 인코더를 대신하여 담당하였지만, 동화상 서버 (2, 3)가 동화상 서버(1)와 마찬가지로 각 동화상 서버를 관리하고, 장해가 발생한 동화상 서버를 담당하고 있었던 인코더를 대신하여 담당하는 구성으로 하여도 좋다.
또한, 실시 형태 1의 인코더는 고정되어 있었지만, 이것에 한정되는 것은 아니고, 카메라가 부착된 휴대 전화 등의 이동 단말을 사용하여 화상 데이터를 수신하며, 소정의 동화상 서버에 화상 데이터를 송신하는 구성으로 하여도 좋다.
실시 형태 2
다음에, 본 실시 형태 2에 관한 스트리밍 배신 시스템의 시스템 구성에 대해서 설명한다. 도 8은 본 실시 형태 2에 관한 동화상 배신 시스템의 시스템 구성을 도시하는 기능 블록도이다.
동 도면에 도시하는 바와 같이 이 동화상 배신 시스템은 인코더(50, 80, 81)가 각각 대응하는 카메라(13∼15)로부터 화상 데이터를 수신하고, 수신한 화상 데이터를 지정한 동화상 서버(70∼72) 중 어느 하나에 송신한다. 그리고, 화상 데이터를 수신한 동화상 서버는 소정의 클라이언트 단말에 수신한 화상 데이터를 스트리밍 배신한다.
또한, 인코더(50, 80, 81)는 소정의 동화상 서버에 화상 데이터를 송신할 때, MDO6(Multiple Destination Option on IPv6)에 기초하여 송신하는 동화상 서버를 지정하여 송신한다.
이 MDO6은 도 9에 도시하는 바와 같이 명시적으로 가고자 하는 어드레스를 IPv6의 확장 헤더로서 저장한다. 동 도면에 도시하는 바와 같이 확장 헤더에는 IPv6(Internet Protocol version 6) 헤더(110)와, Hop-by-Hop 헤더(111)와, Routing 헤더(112)와, Destination 헤더(113)와, UDP(User Datagram Protocol) 헤더(114)로 이루어지며, MDO6에서는 특히 Destination 헤더(113)에 송신처가 되는 복수의 동화상 서버에 대한 어드레스를 지정한다.
그리고, 인코더(50, 80, 81)는 화상 데이터를 송신할 때에, 화상 데이터를 MPEG 데이터로 변환하고, 변환한 MPEG 데이터에 IPv6의 기본 헤더와, MDO6에 기초를 둔 확장 헤더를 첨부하여 라우터(80)에 송신한다.
그리고, 라우터(80)는 수신한 데이터를 확장 헤더로 지정된 소정의 동화상 서버에 송신한다.
그런데, 동화상 서버(70∼72) 중 어느 하나에 장해가 발생한 경우에는, 관리 서버(60)가 장해가 발생한 동화상 서버를 대신할 수 있는 정상적인 동화상 서버를 선택한다.
구체적으로는 관리 서버(60)는 동화상 서버(70)에 장해가 발생한 경우에는 동화상 서버(71)를 선택하고, 동화상 서버(71)에 장해가 발생한 경우에는 동화상 서버(72)를 선택하며, 동화상 서버(72)에 장해가 발생한 경우에는 동화상 서버(70)를 선택한다.
그리고, 관리 서버(60)는 장해가 발생한 동화상 서버에 화상 데이터를 송신하고 있는 복수의 인코더 우선 순위를 결정하고, 우선 순위가 높은 인코더부터 차례로 대신하여 담당하는 동화상 서버의 수신처 정보를 송신한다.
또한, 정상적인 동화상 서버의 화상 데이터에 대한 축적 가능한 용량을 초과 하고, 인코더를 담당할 수 없는 동화상 서버에 대해서는 관리 서버(60)가 담당할 수 없는 인코더에 정지 요구를 송신한다.
그런데, 인코더의 우선 순위를 결정하기 위해서는 후술하는 바와 같이 관리 서버(60)가 재해 정보 통지 서버(30)로부터 송신되는 재해 발생 장소의 정보와, 인코더(50, 80, 81)로부터 송신되는 인코더의 위치 정보에 기초하여 결정한다.
다음에, 인코더(50, 80, 81)의 구성에 대해서 설명한다. 또한, 이들 인코더(50, 80, 81)는 모두 동일한 구성을 가지고 있기 때문에 여기서는 인코더(50)를 예로 들어 설명한다.
이 인코더(50)는 카메라(13)로부터 화상 데이터를 수신하고, 수신한 화상 데이터를 토대로 MPEG 데이터를 작성한다.
또한, 인코더(50)는 지정한 복수의 동화상 서버에 작성한 MPEG 데이터를 송신하기 위해 MDO6에 기초하여 복수의 동화상 서버의 수신처를 지정한 확장 헤더와, IPv6의 기본 헤더를 MPEG 데이터에 첨부시키고, 스트림 데이터로서 라우터(80)에 송신한다. 그리고, 송신된 데이터는 라우터(80)로부터 지정된 각 동화상 서버에 송신된다.
또한, 인코더(50)는 인코더(50)의 위치 정보 등을 특정하고, 특정한 정보를 토대로 XML 데이터를 작성하며, 작성한 XML 데이터를 관리 서버(60)에 송신한다.
인코더(50)는 제어부(51)와, 기억부(52)를 갖는다. 또한, 그 밖의 구성 및 동작은 실시 형태 1에 도시한 인코더(6)와 동일하기 때문에 동일한 구성 요소에는 동일한 부호를 붙여 설명을 생략한다.
제어부(51)는 MPEG 데이터 작성부(51a)와, XML 데이터 작성부(51b)와, 위치 정보 처리부(51c)와, 데이터 송수신부(51d)를 갖는다.
MPEG 데이터 작성부(51a)는 입력 접속부(16)로부터 화상 데이터를 수취하고, 수취한 화상 데이터로부터 MPEG 데이터를 작성한다. 또한, MPEG 데이터 작성부(51a)는 송신처 정보(52b)와 MDO6에 기초하여 복수의 수신처를 지정한 확장 헤더를 작성한다. 또한, 송신처 정보(52b)는 인코더(50)가 송신하는 복수의 동화상 서버의 수신처를 나타낸다.
그리고, MPEG 데이터 작성부(51a)는 MPEG 데이터에 IPv6의 기본 헤더와 확장 헤더를 첨부하고, 스트림 데이터로서 데이터 송수신부(51d)에 전달한다.
XML 데이터 작성부(51b)는 위치 정보 처리부(51c)로부터 수취하는 인코더의 위치 정보를 토대로 하여 XML 데이터를 작성하고, 작성한 XML 데이터를 XML 데이터(52a)로 하여 기억부(52)에 기억시킨다.
위치 정보 처리부(51c)는 위치 정보 송수신부(17)를 이용하여 기지국과 통신하고, 인코더(50)의 현재 위치에 대한 위도 및 경도를 특정한다. 또한, 위치 정보 처리부(51c)는 카메라(13)의 방향을 나타내는 카메라 정보를 카메라(13)로부터 수신한다. 그리고, 위치 정보 처리부(51c)는 특정한 현재 위치에 대한 위도, 경도 및 카메라(13) 방향에 따른 정보를 인코더 정보로서 XML 데이터 작성부(51b)에 전달한다.
데이터 송수신부(51d)는 MPEG 데이터 작성부(51a)로부터 수취한 스트림 데이터를 통신부(20)를 통해 지정한 동화상 서버에 송신한다. 또한, 데이터 송수신부 (51d)는 정기적으로 XML 데이터(52a)를 관리 서버(60)에 송신한다.
또한, 데이터 송수신부(51d)는 화상 데이터를 송신하는 동화상 서버에 장해가 발생하였을 때에는 관리 서버(60)로부터 장해가 발생한 동화상 서버를 대신할 수 있는 정상적인 동화상 서버의 수신처 정보를 수신하고, 수신한 수신처 정보에 기초하여 송신처 정보(52b)를 수정한다.
또한, 데이터 송수신부(51d)는 화상 데이터를 송신하는 동화상 서버에 장해가 발생하였을 때에, 관리 서버(60)로부터 정지 요구를 수신하였으면 인코더(50)를 정지시킨다.
다음에, 관리 서버(60)의 구성에 대해서 설명한다. 관리 서버(60)는 동화상 서버(70∼72)에 장해가 발생하였을 때에, 장해가 발생한 동화상 서버를 담당하고 있었던 인코더를 대신하여 담당하는 정상적인 동화상 서버를 선택한다. 그리고, 관리 서버(60)는 장해가 발생한 동화상 서버에 스트림 데이터를 송신하고 있는 인코더에 대하여 새롭게 선택한 동화상 서버의 수신처 정보를 송신한다.
또한, 관리 서버(60)는 정기적으로 각 인코더(50, 80, 81)로부터 XML 데이터를 수신하고, 수신한 XML 데이터를 각 인코더와 대응시켜 기억한다. 이 XML 데이터에는 각 인코더(50, 80, 81)에 대한 인코더의 위치 정보를 포함하고 있다.
관리 서버(60)는 통신부(61)와, 제어부(62)와, 기억부(63)를 갖는다. 통신부(61)는 인코더(50, 80, 81)와, 재해 정보 통지 서버(30)와, 동화상 서버(70∼72) 사이에서 데이터 통신을 행하기 위한 네트워크 인터페이스이다.
제어부(62)는 장해 감지부(62a)와, 인코더 선택부(62b)와, 데이터 송수신부 (62c)를 갖는다.
장해 감지부(62a)는 동화상 서버(70∼72) 중 어느 하나에서 발생하는 장해를 감지한다.
인코더 선택부(62b)는 동화상 서버(70∼72) 중 어느 하나에 장해가 발생하였을 때에, 우선 관리 정보(63c)를 토대로 하여 장해가 발생한 동화상 서버에 스트림 데이터를 송신하고 있는 인코더를 특정한다.
그리고, 인코더 선택부(62b)는 특정한 인코더의 위치 정보와 재해 정보 통지 서버(30)로부터 수신한 재해 위치 데이터(63a)를 토대로 재해 발생 장소에 가까운 인코더가 우선되도록 우선 순위를 특정한다.
또한, 재해 발생 장소와 거리가 같은 인코더가 복수개 존재하는 경우에는, 인코더의 위치로부터 재해가 발생하고 있는 방향과, 인코더 정보에 포함되는 카메라의 방향이 보다 가까운 인코더를 우선한다.
그리고, 인코더 선택부(62b)는 결정한 인코더의 우선 순위와 담당하는 동화상 서버의 축적 가능 용량(63d)을 토대로 인코더를 선택한다. 여기서, 축적 가능 용량(63d)은 장해가 발생한 동화상 서버를 대신하는 동화상 서버가 축적 가능한 스트림 데이터에 대한 나머지 용량을 나타낸다.
따라서, 인코더 선택부(62b)는 인코더를 하나 선택할 때마다 대신하여 담당하는 서버의 축적 가능 용량을 초과하고 있는지 여부를 판단하고, 축적 가능 용량을 초과하지 않는 경우에는 선택한 인코더에 대하여 대신하여 담당하는 동화상 서버의 수신처 정보(63e)를 송신한다.
한편, 인코더를 선택하였을 때에, 담당하는 동화상 서버의 축적 가능 용량을 초과하고 있는 경우에는 선택하지 않은 나머지 인코더에 정지 요구를 송신하게 된다.
데이터 송수신부(62c)는 재해 정보 통지 서버(30)로부터 송신되는 재해 발생 장소를 나타내는 재해 위치 데이터와, 인코더(50, 80, 81)로부터 송신되는 XML 데이터와, 동화상 서버(70∼72)로부터 송신되는 동화상 서버(70∼72)가 실제로 담당하고 있는 인코더를 특정하는 정보와, 각 동화상 서버(70∼72)에 대한 화상 데이터를 축적 가능한 용량의 정보와, 동화상 서버(70∼72)의 수신처 정보를 각각 수신한다.
그리고, 데이터 송수신부(62c)는 수신한 재해 위치 데이터, XML 데이터, 인코더를 특정하는 정보, 축적 가능한 용량의 정보 및 수신처 정보를 기억부(63)에 재해 위치 데이터(63a), XML 정보(63b), 관리 정보(63c), 축적 가능 용량(63d) 및 수신처 정보(63e)로서 기억한다.
다음에, 인코더(50)가 지정한 동화상 서버에 스트림 데이터를 송신하는 처리 순서에 대해서 설명한다. 도 10은 인코더가 스트림 데이터를 지정한 동화상 서버에 송신하는 처리 순서를 도시하는 흐름도이다.
동 도면에 도시하는 바와 같이 입력 접수부(16)가 카메라(13)로부터 화상 데이터를 수신하고(단계 S501), 수신한 화상 데이터를 MPEG 데이터 작성부(51b)에 전달한다(단계 S502).
그리고, MPEG 데이터 작성부(51a)가 취득한 화상 데이터로부터 MPEG 데이터를 작성하고(단계 S503), 송신처 정보(52b)를 토대로 하여 송신하는 복수의 동화상 서버의 수신처를 특정하며(단계 S504), 특정한 동화상 서버의 수신처로부터 소정의 동화상 서버의 어드레스를 지정한 확장 헤더를 작성한다(단계 S505).
그리고, MPEG 데이터 작성부(51a)는 작성한 MPEG 데이터에 IPv6의 기본 헤더와 확장 헤더를 첨부한 스트림 데이터를 작성하고(단계 S506), 작성한 스트림 데이터를 데이터 송수신부(51d)에 전달하고(단계 S507), 데이터 송수신부(51d)는 통신부(20)를 통해 지정한 복수의 동화상 서버에 스트림 데이터를 송신한다(단계 S508).
이와 같이 인코더(50)에서는 MPEG 데이터 작성부(51a)가 카메라(13)로부터 송신되는 화상 데이터로부터 MPEG 데이터를 작성하고, 송신처 정보(52b)를 토대로 복수의 수신처를 포함한 확장 헤더를 작성하며, MPEG 데이터에 IPv6의 기본 헤더와 확장 헤더를 첨부한 스트림 데이터를 지정한 동화상 서버에 송신한다.
다음에, 인코더(50)가 위치 정보를 포함한 XML 데이터를 관리 서버(60)에 송신하는 처리 순서에 대해서 설명한다. 도 11은 인코더가 위치 정보를 포함한 XML 데이터를 관리 서버(60)에 송신하는 처리 순서를 도시하는 흐름도이다.
동 도면에 도시하는 바와 같이 데이터 송수신부(51d)가 기억부(52)로부터 XML 데이터(52a)를 취득하고(단계 S601), 취득한 XML 데이터를 통신부(20)를 통해 데이터 송수신부(62c)에 송신한다(단계 S602).
그리고 데이터 송수신부(62c)는 통신부(61)를 통해 XML 데이터를 수신하고(단계 S603), 수신한 XML 데이터를 토대로 XML 정보(63b)를 수정한다(단계 S604).
다음에, 동화상 서버(70)가 현재 담당하고 있는 인코더와, 화상 데이터의 축 적 가능한 용량과, 동화상 서버(70)의 수신처 정보를 관리 서버(60)에 송신하는 처리 순서에 대해서 설명한다. 도 12는 동화상 서버가 현재 담당하고 있는 인코더와, 화상 데이터의 축적 가능한 용량과, 동화상 서버의 수신처 정보를 관리 서버에 송신하는 처리 순서를 도시하는 흐름도이다.
동 도면에 도시하는 바와 같이 동화상 서버(70)가 현재 담당하고 있는 인코더와, 스트림 데이터를 축적 가능한 용량과, 동화상 서버(70)의 수신처 정보를 동화상 서버 정보로서 특정하고(단계 S701), 특정한 동화상 서버 정보를 데이터 송수신부(62c)에 송신한다(단계 S702).
그리고, 데이터 송수신부(62c)는 통신부(61)를 통해 동화상 서버 정보를 수신하고(단계 S703), 수신한 동화상 서버 정보를 토대로 하여 각각을 관리 정보(63c), 축적 가능 용량(63d) 및 수신처 정보(63e)로서 기억부(63)에 기억시킨다(단계 S704). 여기서 관리 정보(63c)는 동화상 서버가 실제로 담당하고 있는 인코더를 나타내고, 축적 가능 용량(63d)은 동화상 서버가 스트림 데이터를 축적 가능한 용량을 나타내며, 수신처 정보(63e)는 동화상 서버의 수신처를 나타낸다.
그런데, 동화상 서버(71, 72)도 마찬가지로 관리 서버(60)에 동화상 서버 정보를 송신한다. 따라서, 관리 정보(63c)는 동화상 서버(70∼72) 각각이 담당하고 있는 인코더의 정보를 포함하고, 축적 가능 용량(63d)은 동화상 서버(70∼72)의 각각의 스트림 데이터에 대한 축적 가능한 용량의 정보를 포함하며, 수신처 정보(63e)는 동화상 서버(70∼72)의 수신처 정보를 포함하게 된다.
다음에, 관리 서버(60)가 동화상 서버의 장해를 검지하고, 인코더가 정상적 인 동화상 서버에 스트림 데이터를 송신할 수 있도록 지시하는 처리 순서에 대해서 설명한다. 도 13은 관리 서버가 동화상 서버의 장해를 검지하고, 인코더가 정상적인 동화상 서버에 스트림 데이터를 송신할 수 있도록 지시하는 처리 순서를 도시하는 흐름도이다.
동 도면에 도시하는 바와 같이 장해 감지부(62a)가 장해를 감지하고, 장해가 발생한 동화상 서버를 특정한다(단계 S801). 그리고, 인코더 선택부(62b)가 관리 정보(63c)를 토대로 장해가 발생한 동화상 서버에 스트림 데이터를 송신하고 있는 복수의 인코더를 특정하며(단계 S802), XML 정보(63)에 포함되는 복수의 인코더에 대한 위치 정보와 재해 위치 데이터(63a)에 기초하여 재해 발생 장소에 가까운 인코더가 우선되도록 우선 순위를 결정한다(단계 S803).
또한, 단계 S803에서 재해 발생 위치와 거리가 같은 인코더가 복수개 존재하는 경우에는, 재해 발생 장소의 방향과 카메라의 방향이 보다 가까운 인코더가 우선된다.
그리고, 인코더 선택부(62a)는 인코더를 순서대로 하나 선택하고(단계 S804), 장해가 발생한 동화상 서버를 대신할 수 있는 동화상 서버에 스트림 데이터를 축적하는 여력이 있는지 여부를 축적 가능 용량(63d)을 토대로 하여 판단한다(단계 S805).
스트림 데이터를 축적하는 여력이 없는 경우에는(단계 S805, No), 인코더 선택부(62a)는 정상적인 동화상 서버에 할당할 수 없는 인코더에 정지 요구를 송신한다(단계 S806).
한편, 스트림 데이터를 축적하는 여력이 있는 경우에는(단계 S805, Yes), 인코더 선택부(62a)는 새로운 송신처가 되는 동화상 서버의 수신처를 수신처 정보(63e)로부터 취득하고, 취득한 수신처를 선택한 인코더에 송신하며(단계 S807) 모든 인코더를 선택하였는지 여부를 확인한다(단계 S808).
모든 인코더를 선택하지 않은 경우에는(단계 S808, No) 단계 S804로 이행한다. 한편, 모든 인코더를 선택하고 있는 경우에는(단계 S808, Yes) 처리를 종료한다.
전술한 바와 같이 본 실시 형태 2에 관한 스트리밍 배신 시스템에서는 동화상 서버(70∼71)에 장해가 발생하였을 때에, 인코더 선택부(62b)가 장해를 발생하고 있는 동화상 서버에 스트림 데이터를 송신하고 있는 인코더의 우선 순위를 재해 위치 데이터(63a)와 XML 정보(63b)에 기초하여 결정하고, 우선 순위가 높은 인코더로부터 순서대로 정상적인 동화상 서버의 수신처 정보를 송신하며, 수신처 정보를 수신한 인코더는 송신처가 되는 동화상 서버의 수신처를 변경한다.
그 때문에, 동화상 서버에 장해가 발생하였을 때에, 장해가 발생한 동화상 서버에 스트림 데이터를 송신하는 인코더의 우선 순위를 시시 각각 변화하는 재해 등의 상황에 따라 동적으로 변화시킬 수 있고, 최적의 스트림 데이터를 클라이언트 단말에 송신할 수 있다.
또한, 본 실시 형태 2에서는 관리 서버(60)가 동화상 서버(70)에 장해가 발생하였을 때에 동화상 서버(71)를 대행시키고, 동화상 서버(71)에 장해가 발생하였을 때에 동화상 서버(72)를 대행시키며, 동화상 서버(72)에 장해가 발생하였을 때 에 동화상 서버(70)를 대행시켰지만, 예컨대 동화상 서버(70)에 장해가 발생하였을 때에 동화상 서버(71, 72)를 대행시키고, 동화상 서버(71)에 장해가 발생하였을 때에 동화상 서버(72, 70)을 대행시키며, 동화상 서버(72)에 장해가 발생하였을 때에 동화상 서버(70 및 71)를 대행하는 구성으로 하여도 좋다.
또한, 본 실시 형태 1 및 2에서는 인코더의 위치 정보 및 인코더가 이용하는 카메라의 방향에 따른 정보를 XML을 이용하여 기술하였지만, 다른 언어를 이용하여 인코더의 위치 정보 및 인코더가 이용하는 카메라의 방향에 따른 정보를 기술하고, MPEG 데이터에 첨부하여도 좋다.
또한, 본 실시 형태 1 및 2에서는 동화상 배신 시스템에 대해서 설명하였지만, 이 동화상 배신 시스템에 따른 동화상 서버가 갖는 구성을 소프트웨어에 의해 실현함으로써, 동일한 기능을 갖는 동화상 배신 프로그램을 얻을 수 있다. 여기서, 이 동화상 배신 프로그램을 실행하는 컴퓨터 시스템에 대해서 설명한다.
도 14는 본 실시 형태에 따른 동화상 배신 프로그램을 실행하는 컴퓨터 시스템을 도시하는 도면이다. 동 도면에 도시하는 바와 같이 이 컴퓨터 시스템(200)은 본체부(201)와, 본체부(201)로부터의 지시에 의해 표시 화면(202a)에 정보를 표시하는 디스플레이(202)와, 이 컴퓨터 시스템(200)에 여러 가지의 정보를 입력하기 위한 키보드(203)와, 디스플레이(202)의 표시 화면(202a) 상의 임의의 위치를 지정하는 마우스(204)와, LAN(206) 또는 광역 네트워크(WAN)에 접속하는 LAN 인터페이스와, 공중 회선(207)에 접속하는 모뎀(205)을 갖는다. 여기서 LAN(206)은 다른 컴퓨터 시스템(PC)(211), 서버(212), 프린터(213) 등과 컴퓨터 시스템(200)을 접속하 고 있다.
또한, 도 15는 도 14에 도시한 본체부(201)의 구성을 도시하는 기능 블록도이다. 동 도면에 도시하는 바와 같이 이 본체부(201)는 CPU(221)와, RAM(222)과, ROM(223)과, 하드디스크 드라이브(HDD)(224)와, CD-ROM 드라이브(225)와, FD 드라이브(226)와, I/O 인터페이스(227)와, LAN 인터페이스(228)를 갖는다.
그리고, 이 컴퓨터 시스템(200)에 있어서 실행되는 동화상 배신 프로그램은 플로피 디스크(FD)(208), CD-ROM(209), DVD 디스크, 광자기디스크, IC 카드 등의 휴대형 기억 매체에 기억되고, 이들 기억 매체로부터 판독되어 컴퓨터 시스템(200)에 설치된다.
그리고, 설치된 동화상 배신 프로그램은 HDD(224)에 기억되고, RAM(222), ROM(223) 등을 이용하여 CPU(221)에 의해 실행된다.
이상 설명한 바와 같이 본 발명에 의하면 인코더가 자기 인코더가 위치하는 위치 정보를 특정하고, 특정한 위치 정보를 부호화한 동화상 데이터에 부여하여 동화상 배신 장치에 송신한다. 그리고, 동화상 배신 장치는 다른 동화상 배신 장치에 장해가 발생하였을 때에, 다른 동화상 배신 장치에 동화상 데이터를 송신하고 있는 복수의 인코더의 동화상 데이터를 취득하고, 취득한 복수의 동화상 데이터에 포함된 인코더의 위치 정보와 재해 발생 위치에 기초하여 재해 발생 위치에 가까운 인코더를 우선적으로 선택하고, 선택한 인코더를 장해가 발생한 다른 동화상 배신 장치 대신에 담당하는 것으로 하였기 때문에 인코더의 주변 상황에 의해 인코더의 우선 순위를 동적으로 변화시킬 수 있으며, 클라이언트 단말에 중요한 동화상 데이터 를 안정적으로 배신할 수 있는 효과를 발휘한다.