KR20080078838A - 데이터 출력 장치, 기기 제어 장치 및 멀티미디어 배포시스템 - Google Patents

데이터 출력 장치, 기기 제어 장치 및 멀티미디어 배포시스템 Download PDF

Info

Publication number
KR20080078838A
KR20080078838A KR1020087014727A KR20087014727A KR20080078838A KR 20080078838 A KR20080078838 A KR 20080078838A KR 1020087014727 A KR1020087014727 A KR 1020087014727A KR 20087014727 A KR20087014727 A KR 20087014727A KR 20080078838 A KR20080078838 A KR 20080078838A
Authority
KR
South Korea
Prior art keywords
output
data
multimedia data
request
receiving
Prior art date
Application number
KR1020087014727A
Other languages
English (en)
Inventor
도시히코 무네츠구
Original Assignee
마쯔시다덴기산교 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마쯔시다덴기산교 가부시키가이샤 filed Critical 마쯔시다덴기산교 가부시키가이샤
Publication of KR20080078838A publication Critical patent/KR20080078838A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4333Processing operations in response to a pause request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8193Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

네트워크에 접속된 멀티미디어 콘텐츠 서버와 복수의 단말로 구성되는 멀티미디어 배포 시스템에 있어서, 어느 단말에서 중단한 콘텐츠의 재생을, 다른 단말로부터 재개한다.

Description

데이터 출력 장치, 기기 제어 장치 및 멀티미디어 배포 시스템{DATA OUTPUT DEVICE, EQUIPMENT CONTROL DEVICE, AND MULTIMEDIA DELIVERY SYSTEM}
본 발명은, 멀티미디어의 디지털 콘텐츠의 네트워크 등으로의 출력 및 그 제어에 관한 것이다.
최근, BS디지털 방송, CS110도 디지털 방송 및 지상파 디지털 방송 등의 디지털 방송이 개시되었다. 또, HDD 레코더, DVD(Digital Versatile Disc) 레코더 등의 보급이 진행되고 있다. 이들에 의해, 가정 내에서 이용할 수 있는, 디지털화된 멀티미디어 콘텐츠가 증가하고 있다.
또, 한편으로, 브로드밴드 환경의 정비에 의해, 가정으로부터의 인터넷 액세스가 보급되고 있다. 그에 따라, 가정 내의 각 방을 IP 네트워크로 연결하는, 이른바 홈 네트워크의 보급도 진행되고 있다.
이러한 상황에 의해, 가정 내의 디지털 방송 수신기로 수신한 디지털 방송, 혹은, 레코더에 축적한 디지털 콘텐츠를, 홈 네트워크를 이용하여, 다른 방에서 시청하는 것이 행해지게 되었다. 이때, 홈 네트워크 상의 서버(예를 들면, 디지털 방송을 수신하는 셋탑 박스나 HDD 레코더)와 클라이언트(예를 들면, 퍼스널 컴퓨터나 디지털 플레이어)에 있어서의, 서로의 기기의 인식이나 이용할 수 있는 콘텐츠 의 정보의 교환에는, UPnP(Universal Plag and Play)에 규정된 방법이 널리 이용되고 있다. 또, 멀티미디어 데이터의 통신은 RTP(Real Time Transport Protocol) 등이, 그 제어에는 RTSP(Real Time Streaming Protocol) 등이 이용되고 있다. RTSP는 IETF(Internet Engineering Task Force)에 의해서 규격화되어 있다.(예를 들면, 비특허 문헌 1을 참조).
영화와 같은 장시간의 디지털 콘텐츠를 재생, 시청하는 경우, 시청을 단시간 중단한 후, 이어서 시청하는 것과 같은 일이 빈번히 행해진다. RTSP를 이용한 네트워크 경유로의 시청에서는, RTSP의 RESUME 기능을 이용하거나, 혹은, 클라이언트가 중단 위치를 기억해 두고, 재개시에 서버로 고쳐 중단 위치 이후의 데이터 송신을 요구함으로써 실현되고 있다. 여기서, 홈 네트워크에 의해, 복수의 방에서의 시청이 가능해짐으로써, 예를 들면 거실에서 시청하고 있던 콘텐츠의 계속을 침실에서 보는 등의 요구가 나오고 있다.
[비특허 문헌 1:RFC2326 Real Time Streaming Protocol(RTSP)]
[발명이 해결하고자 하는 과제]
그러나, RTSP에서는, 서버 클라이언트의 1대 1 통신을 대상으로 하고, 다른 클라이언트로의 데이터 전송은 고려되고 있지 않으며, 상기의 방을 바꾼 시청 재개를 실현하는 것은 불가능하다. 또, 클라이언트가 바뀌기 때문에, 클라이언트가 중단 위치를 기억하는 등의 방법을 이용할 수 없다.
본 발명은, 상기의 문제를 해결하기 위해서 이루어진 것으로, 같은 클라이언트뿐만이 아니라 다른 클라이언트로부터라도, 콘텐츠의 중단 위치로부터의 시청을 가능하게 하는 데이터 출력 장치, 기기 제어 장치 및 멀티미디어 배포 시스템의 제공을 목적으로 한다.
[과제를 해결하기 위한 수단]
종래의 과제를 해결하기 위해서, 본 발명의 데이터 출력 장치는, 영상 및 음성의 적어도 한쪽을 포함하는 멀티미디어 데이터를 출력하는 데이터 출력 장치로서, 외부의 장치로부터 신호를 수신하는 수신 수단과, 멀티미디어 데이터를 축적하고 있는 축적 수단과, 상기 축적 수단으로부터 데이터를 독출하는 독출 수단과, 상기 멀티미디어 데이터를 지정된 출력처로 출력하는 출력 수단과, 상기 출력 수단에 의한 출력을 중단한 멀티미디어 데이터와, 당해 멀티미디어 데이터의 출력을 재개하는 위치를 나타내는 재개 위치 정보를 기억하고 있는 기억 수단과, 상기 수신 수단에 의해, 상기 출력 수단에 의한 출력을 중단하는 요구인 중단 요구가 수신된 경우에, 상기 재개 위치 정보를 생성하고, 생성한 상기 재개 위치 정보를 상기 기억 수단에 기억시키고, 상기 수신 수단에 의해 상기 출력 수단에 의한 출력을 재개하는 요구인 재개 요구와 출력처가 수신된 경우에, 상기 재개 위치 정보를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독출 수단에 독출시키고, 독축시킨 상기 멀티미디어 데이터를, 상기 출력 수단에 의해, 상기 출력처로 출력시키는 제어 수단을 구비한다.
이와 같이, 본 발명의 데이터 출력 장치는, 재개 위치 정보를 기억하고 있다. 이로 인해, 멀티미디어 데이터의 출력처가 바뀌어도, 중단된 멀티미디어 데이터 출력을 중단된 계속 부분부터 적확하게 재개하는 것이 가능해진다.
바람직하게는, 상기 데이터 출력 장치는, 네트워크를 통해 복수의 단말에 접속되어 있고, 상기 출력 수단은, 유저에 의해 지정된 상기 복수의 단말 중 어느 하나를 출력처로 하여 출력한다.
이와 같이, 출력 수단은 네트워크를 통해 접속된 복수의 단말에 출력할 수 있다. 그 때문에, 그들 단말 중 어느 하나가 지정된 경우에는, 그 지정된 단말에 출력을 재개할 수 있다. 따라서, 중단한 데이터를 다른 출력처로 출력하는 것이 가능해진다.
더욱 바람직하게는, 상기 출력 수단은, 상기 멀티미디어 데이터를, 복수의 출력처 중 어느 하나에 출력하고, 상기 제어 수단은, 상기 수신 수단에 의해, 상기 재개 요구와 상기 복수의 출력처 중 어느 하나가 수신된 경우에, 상기 재개 위치 정보를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터를, 상기 출력 수단에 의해, 상기 수신 수단에 의해 수신된 출력처로 출력시킨다.
이와 같이, 출력 수단은 복수의 단말 중 어느 하나에 출력할 수 있다. 그 때문에, 그들 단말 중 어느 하나가 지정된 경우에는, 그 지정된 단말에 출력을 재개할 수 있다. 따라서, 중단한 데이터를 다른 출력처로 출력하는 것이 가능해 진다.
더욱 바람직하게는, 상기 제어 수단은, 상기 수신 수단에 의해 상기 중단 요구가 수신된 경우에, 상기 재개 위치 정보와, 상기 중단 요구를 식별하는 중단 식별자를 생성하고, 생성한 상기 재개 위치 정보와, 상기 중단 식별자를 상기 기억 수단에 기억시키고, 상기 수신 수단에 의해 상기 재개 요구와, 상기 출력처와, 상기 중단 식별자가 수신된 경우에, 상기 중단 식별자에 대응하는 상기 재개 위치 정보를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터를 상기 출력 수단에 의해, 상기 출력처로 출력시킨다.
이와 같이, 기억 수단은 재개 위치 정보와 중단 식별자를 기억하고 있다. 이로 인해, 유저는 중단 식별자에 의해서 재개 요구를 지시할 수 있어, 편리성이 향상된다.
더욱 바람직하게는, 상기 제어 수단은, 상기 수신 수단에 의해 상기 중단 요구와, 출력을 재개할 때의 출력처가 수신된 경우에, 상기 재개 위치 정보를 생성하고, 상기 생성한 상기 재개 위치 정보와 상기 출력처를 상기 기억 수단에 기억시키고, 상기 수신 수단에 의해 상기 재개 요구가 수신된 경우에, 상기 재개 위치 정보와 상기 출력처를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터를, 상기 기억 수단으로부터 독출된 상기 출력처로, 상기 출력 수단에 의해 출력시킨다.
이와 같이, 기억 수단은 재개 위치 정보와 출력처를 기억하고 있다. 이로 인해, 기억하고 있는 출력처로부터 출력 재개 요구를 받은 경우에만, 출력을 재개하는 것이 가능해진다. 이로 인해, 예를 들면, 재개 위치 정보와 출력처의 조합을 복수 기억해 둠으로써, 재개 요구를 받은 출력처에 따라서, 적절한 콘텐츠를 적절한 재개 위치로부터 출력하는 것이 가능해진다.
더욱 바람직하게는, 외부의 장치로부터 멀티미디어 데이터를 수신하는 데이터 수신 수단과, 상기 데이터 수신 수단이 수신한 멀티미디어 데이터를 상기 축적 수단에 기록하는 기록 수단을 더 구비하고, 상기 제어 수단은, 또한, 상기 데이터 수신 수단이 수신하면서, 멀티미디어 데이터를 출력 수단이 출력하고 있을 때, 상기 중단 요구를 받은 경우에, 상기 데이터 수신 수단에 상기 멀티미디어 데이터의 계속을 수신시키고, 수신시킨 상기 멀티미디어 데이터의 계속을 상기 기록 수단에 의해서, 상기 축적 수단에 기록시키고, 상기 수신 수단에 의해 상기 재개 요구와 상기 출력처가 수신된 경우에, 상기 기록 수단에 의해서 상기 축적 수단에 기록된 상기 멀티미디어 데이터의 계속을 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터의 계속을, 상기 출력 수단에 의해, 상기 출력처로 출력시킨다.
이와 같이, 멀티미디어 데이터를 수신하면서 출력하고 있는 경우에, 중단 요구를 받으면, 수신하고 있는 멀티미디어 데이터의 계속을 축적해 둔다. 이로 인해, 디지털 방송으로 방송중 혹은 VoD(Video On Demand)로 수신중 등, 출력 중단시에 모두 수신하고 있지 않은 데이터라도, 재개 요구를 받았을 때에 축적되어 있는 멀티미디어 데이터를 출력할 수 있다. 그 때문에, 재개 요구를 받았을 때의 멀티미디어 데이터의 출력을 적확하게 재개하는 것이 가능해진다.
더욱 바람직하게는, 멀티미디어 데이터를 재생하는 재생 수단을 더 구비하고, 상기 출력 수단은, 상기 멀티미디어 데이터를, 복수의 출력처 및 상기 재생 수단 중 어느 하나에 출력하고, 상기 제어 수단은, 또한, 상기 출력 수단이 상기 재생 수단에 출력하고 있을 때, 상기 수신 수단에 의해, 상기 중단 신호가 수신된 경우에, 상기 재개 위치 정보를 생성하고, 상기 생성한 상기 재개 위치 정보를 상기 기억 수단에 기억시킨다.
이와 같이, 데이터 출력 장치 자신이, 멀티미디어 데이터를 재생하는 재생 수단을 구비하고, 재생 수단을 출력처로서 지정할 수 있다. 그 때문에, 데이터 출력 장치 자신을 출력처로 하는 것이 가능해진다.
더욱 바람직하게는, 외부의 장치로부터 멀티미디어 데이터를 수신하는 데이터 수신 수단과, 상기 데이터 수신 수단이 수신한 멀티미디어 데이터를 상기 축적 수단에 기록하는 기록 수단을 더 구비하고, 상기 제어 수단은, 또한, 상기 데이터 수신 수단이 수신하면서, 멀티미디어 데이터를 출력 수단이 상기 재생 수단에 출력하고 있을 때, 상기 중단 요구를 수신한 경우에, 상기 데이터 수신 수단에 상기 멀티미디어 데이터의 계속을 수신시키고, 수신시킨 상기 멀티미디어 데이터의 계속을 상기 기록 수단에 의해서, 상기 축적 수단에 기록시키고, 상기 수신 수단에 의해 상기 재개 요구가 수신된 경우에, 상기 기록 수단에 의해서 상기 축적 수단에 기록된 상기 멀티미디어 데이터의 계속을 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터의 계속을, 상기 출력 수단에 의해, 상기 출력처로 출력시킨다.
이와 같이, 데이터 출력 장치는, 멀티미디어 데이터를 외부의 장치로부터 수신하고, 수신한 멀티미디어 데이터를 기억 수단에 축적한다. 이로 인해, 디지털 방송 또는 VoD에 의해 전달되는 멀티미디어 데이터의 출력을 중단하고, 그 재개 요구를 받은 경우라도, 그 멀티미디어 데이터의 출력을 적확하게 재개하는 것이 가능해진다.
더욱 바람직하게는, Java(등록상표) 애플리케이션을 실행하는 Java 실행 수단을 더 구비하고, 상기 제어 수단은, Java 애플리케이션에 의해서 기동된다.
이와 같이, 데이터 출력 장치는 Java 실행 수단을 구비한다. 이로 인해, Java에 의해 기술된 응용 프로그램(이하, 「Java 애플리케이션」이라고 한다.)을 실행할 수 있다. 그 때문에, 제어부는, Java 애플리케이션을 실행함으로써 발휘되는 기능에 의해, 데이터 출력 장치가 구비하는 각 수단을 제어하는 것이 가능해진다.
또, 제19의 발명의 기기 제어 장치는, 영상 및 음성 중 적어도 한쪽을 포함하는 멀티미디어 데이터를 출력하는 데이터 출력 장치에 요구를 발행하는 기기 제어 장치로서, 상기 데이터 출력 장치로 요구를 송신하는 송신 수단과, 상기 데이터 출력 장치에 의한 멀티미디어 데이터의 출력을 중단하는 요구인 중단 요구를 상기 데이터 출력 장치로 보낼 때에, 상기 데이터 출력 장치가 데이터 출력을 재개하는 경우의 출력처를 특정하고, 특정한 상기 출력처를 상기 송신 수단에 의해 송신시키는 제어 수단을 구비한다.
이와 같이, 기기 제어 장치는, 중단 요구와 더불어, 특정한 출력처를 데이터 출력 장치에 송신한다. 이로 인해, 데이터 출력 장치에, 데이터 출력 재개시의 송신처를 등록하는 것이 가능하고, 데이터 출력 장치에 적절한 출력처에 적절한 재생 위치로부터의 멀티미디어 데이터를 출력시키는 것이 가능해진다.
바람직하게는, Java 애플리케이션을 실행하는 Java 실행 수단을 더 구비하고, 상기 Java 애플리케이션으로부터 상기 중단 요구를 받으면, 상기 중단 요구를 상기 데이터 출력 장치로 보낼 때에, 상기 데이터 출력 장치가 데이터 출력을 재개하는 경우의 출력처를 특정하고, 특정한 상기 출력처를 상기 송신 수단에 의해 송신시킨다.
이와 같이, 기기 제어 장치는, 또한 Java 실행 수단을 구비한다. 이로 인해, Java에 의해 기술된 애플리케이션을 실행할 수 있다. 그 때문에, 제어부는, Java 애플리케이션을 실행함으로써 발휘되는 기능에 의해, 데이터 출력 장치가 구비하는 각 수단을 제어하는 것이 가능해진다.
다음에, 제22의 발명의 기기 제어 장치는, 영상 및 음성 중 적어도 한쪽을 포함하는 멀티미디어 데이터를 제공하는 데이터 출력 장치와 네트워크를 통해 접속되고, 유저의 조작에 의해서 동작하는 기기 제어 장치로서, 상기 데이터 출력 장치로부터 제공되는 멀티미디어 데이터에 포함되는 콘텐츠의 속성을 수신하는 속성 수신 수단과, 상기 데이터 출력 장치에 요구를 송신하는 송신 수단과, 유저의 조작에 의거하여, 콘텐츠 데이터의 출력을 재개하는 요구인 재개 요구를 받았을 때에, 상기 속성 수신 수단이 수신한 그 콘텐츠의 속성으로부터, 그 콘텐츠의 출력이 중단되어 있는지의 여부를 판정하고, 그 콘텐츠의 출력이 중단되어 있다고 판정한 경우에, 상기 송신 수단에 상기 재개 요구를 상기 데이터 출력 장치로 송신시키는 제어 수단을 구비한다.
이와 같이, 기기 제어 장치는 네트워크를 통해 데이터 출력 장치를 제어하고, 또, 멀티미디어 데이터에 포함되는 콘텐츠의 속성으로서, 그 콘텐츠의 출력이 중단되어 있는지의 여부를 판정하고, 출력이 중단되어 있다고 판정한 경우에, 그 콘텐츠가 포함되는 멀티미디어 데이터의 출력의 재개 요구를 송신한다. 이로 인해, 출력이 중단되어 있는 경우에는, 그 계속으로부터 출력할 수 있고, 데이터 출력 장치에 적절한 출력처에 적절한 재생 위치로부터의 멀티미디어 데이터를 출력시키는 것이 가능해진다.
바람직하게는, 상기 속성 수신 수단은, 콘텐츠 개별의 출력 중단을 나타내는 식별자를 포함하는 상기 콘텐츠의 속성을 수신하고, 상기 제어 수단은, 출력 중단 상태라고 판정한 경우에, 상기 송신 수단에 상기 재개 요구와 상기 식별자를 상기 멀티미디어 서버로 송신시킨다.
이와 같이, 콘텐츠의 속성에는 출력 중단을 나타내는 식별자가 포함된다. 이로 인해, 그 식별자에 의해서 멀티미디어 데이터를 특정하고, 그 출력을 재개시키는 것이 가능해진다.
Java 애플리케이션을 실행하는 Java 실행 수단을 더 구비하고, 상기 제어 수단은, 상기 Java 애플리케이션으로부터 상기 재개 요구를 받았을 때에, 상기 속성 수신 수단이 수신한 그 콘텐츠의 속성으로부터, 그 콘텐츠가 출력 중단 상태인지의 여부를 판정하고, 출력 중단 상태라고 판정한 경우에, 상기 송신 수단에 상기 재개 요구를 상기 멀티미디어 서버로 송신시킨다.
이와 같이, 기기 제어 장치는, 또한 Java 실행 수단을 구비한다. 이로 인해, Java에 의해 기술된 애플리케이션을 실행할 수 있다. 그 때문에, 제어부는, Java 애플리케이션을 실행함으로써 발휘되는 기능에 의해, 데이터 출력 장치가 구비하는 각 수단을 제어하는 것이 가능해진다.
또한, 제26의 발명의 기기 제어 장치는, 네트워크에 접속되고, 영상 및 음성 중 적어도 한쪽을 포함하는 멀티미디어 데이터를 출력하는 데이터 출력 장치를 제어하는 기기 제어 장치로서, 상기 데이터 출력 장치로 출력 중단 요구를 냈을 때에, 출력을 중단한 멀티미디어 데이터와, 당해 멀티미디어 데이터의 출력을 중단한 위치로부터 얻어지고, 출력을 재개하는 위치를 나타내는 재개 위치 정보를 기억하고 있는 기억 수단과, 상기 데이터 출력 장치와 통신하는 통신 수단과, 상기 데이터 출력 장치로부터 상기 재개 위치 정보를 수신해 상기 기억 수단에 기억시키고, 상기 데이터 출력 장치로 출력 재개 요구를 내는 경우에, 상기 기억 수단이 기억하고 있는 상기 재개 위치 정보 및 출력처를 상기 데이터 출력 장치로 송신하는 제어 수단을 구비한다.
이와 같이, 기기 제어 장치는 네트워크를 통해 데이터 출력 장치를 제어하고, 또, 재개 위치 정보를 기억하고 있다. 이로 인해, 네트워크를 통해 데이터 출력 장치에 재개 요구와 더불어, 출력을 재개하는 위치를 송신할 수 있다. 그 때문에, 데이터 장치에 의한 멀티미디어 데이터의 출력의 재개를 적확하게 제어하는 것이 가능해진다.
바람직하게는, Java 애플리케이션을 실행하는 Java 실행 수단을 더 구비하고, 상기 제어 수단은, 상기 Java 애플리케이션으로부터 상기 데이터 출력 장치로 중단 요구를 받았을 때에, 상기 통신 수단에 의해, 상기 데이터 출력 장치로 중단 요구를 송신하고, 출력을 중단한 멀티미디어 데이터 및 출력 중단 위치로부터 얻어지는 재개 위치 정보를, 상기 통신 수단에 의해 상기 데이터 출력 장치로부터 수신하여 상기 기억 수단에 기억시키고, Java 애플리케이션으로부터 상기 데이터 출력 장치로 재개 요구를 받았을 때에, 상기 기억 수단에 기억한 상기 재개 위치 정보를 독출하고, 출력 재개 요구 및 출력처와 더불어 상기 재개 위치 정보를, 상기 통신 수단에 의해 상기 데이터 출력 장치로 송신시킨다.
이와 같이, 기기 제어 장치는, 또한 Java 실행 수단을 구비한다. 이로 인해, Java에 의해 기술된 애플리케이션을 실행할 수 있다. 그 때문에, 제어부는, Java 애플리케이션을 실행함으로써 발휘되는 기능에 의해, 데이터 출력 장치가 구비하는 각 수단을 제어하는 것이 가능해진다.
또한, 본 발명은, 이러한 특징적인 수단을 구비하는 데이터 출력 장치 및 기기 제어 장치로서 실현하는 것이 가능할 뿐만 아니라, 데이터 출력 장치 및 기기 제어 장치의 각각에 포함되는 특징적인 수단을 단계로 하는 방법으로서 실현하거나, 데이터 출력 장치 및 기기 제어 장치의 각각에 포함되는 특징적인 수단으로서 컴퓨터를 기능시키는 프로그램으로서 실현하거나 하는 것도 가능하다. 그리고, 그러한 프로그램은, CD-ROM(Compact Disc-Read Only Memory) 등의 기록 매체나 인터넷 등의 통신 네트워크를 통해 유통시킬 수 있다. 또, 본 발명은, 이러한 특징적인 수단을 구비하는 데이터 출력 장치 및 기기 제어 장치를 구비하는 멀티미디어 배포 시스템으로서 실현할 수도 있다.
[발명의 효과]
이상 설명한 바와 같이, 본 발명의 데이터 출력 장치, 기기 제어 장치, 멀티미디어 배포 시스템에 의하면, 멀티미디어 콘텐츠의 시청·재생을 중단하고 재개하는 경우에, 네트워크 상의 다른 단말에서 재개하는 경우에 있어서도, 적확하게 재개하는 것이 가능해진다.
도 1은, 본 발명의 실시의 형태 1에 있어서의 멀티미디어 배포 시스템의 구성도이다.
도 2는, 본 발명의 실시의 형태 1에 있어서의 데이터 출력 장치의 구성의 일례를 나타내는 블록도이다.
도 3은, 본 발명의 실시의 형태 1에 있어서의 단말 및 단말의 구성의 일례를 나타내는 블록도이다.
도 4는, 본 발명의 실시의 형태 1에 있어서의 축적부에 축적된 데이터의 구성의 일례를 나타내는 도면이다.
도 5는, 본 발명의 실시의 형태 1에 있어서의 멀티미디어 데이터의 속성 정보의 일례를 나타내는 도면이다.
도 6은, 본 발명의 실시의 형태 1에 있어서의 URI 테이블의 일례를 나타내는 도면이다.
도 7은, 본 발명의 실시의 형태 1에 있어서의 재개 위치 정보의 일례를 나타내는 도면이다.
도 8은, 본 발명의 실시의 형태 1의 제1 변형예에 있어서의 재개 위치 정보의 일례를 나타내는 도면이다.
도 9는, 본 발명의 실시의 형태 1의 제2 변형예에 있어서의 재개 위치 정보의 일례를 나타내는 도면이다.
도 10은, 본 발명의 실시의 형태 1의 제3 변형예에 있어서의 데이터 출력 장치의 구성의 일례를 나타내는 블록도이다.
도 11은, 본 발명의 실시의 형태 1의 제4 변형예에 있어서의 데이터 출력 장치의 구성의 일례를 나타내는 블록도이다.
도 12는, 본 발명의 실시의 형태 1의 제5 변형예에 있어서의 멀티미디어 배포 시스템의 구성의 일례를 나타내는 도면이다.
도 13은, 본 발명의 실시의 형태 2에 있어서의 멀티미디어 배포 시스템의 구성의 일례를 나타내는 도면이다.
도 14는, 본 발명의 실시의 형태 2에 있어서의 데이터 출력 장치의 구성의 일례를 나타내는 블록도이다.
도 15는, 프런트 패널로 실시의 형태 2에 관한 입력부를 구성한 경우의 외관의 일례를 나타내는 도면이다.
도 16은, 본 발명의 실시의 형태 2에 있어서의 데이터 출력 장치가 유지하고, 실행하는 프로그램의 구성의 일례를 나타내는 도면이다.
도 17은, 본 발명의 실시의 형태 2에 관한 모니터에 표시된 프로그램표의 예를 나타내는 도면이다.
도 18은, 본 발명의 실시의 형태 2에 관한 제2 메모리에 기억되어 있는 프로그램 정보의 일례를 나타내는 도면이다.
도 19는, 본 발명의 실시의 형태 2에 관한 제2 메모리에 저장되어 있는 채널 정보의 일례를 나타내는 도면이다.
도 20은, 본 발명의 실시의 형태 2에 관한 제2 메모리에 저장되어 있는 채널의 식별자의 예를 나타내는 도면이다.
도 21은, 수집한 PAT의 정보의 일례를 모식적으로 나타내는 도면이다.
도 22는, 수집한 PMT의 정보의 일례를 모식적으로 나타내는 도면이다.
도 23은, 수집한 AIT의 정보의 일례를 모식적으로 나타내는 도면이다.
도 24는, 다운로드한 파일 시스템의 일례를 나타내는 도면이다.
도 25는, 데이터 출력 장치가, 제2 메모리에 멀티미디어 데이터를 축적하는 형태의 일례를 나타내는 도면이다.
도 26은, 본 발명의 실시의 형태 2에 있어서의 속성 정보의 일례를 나타내는 도면이다.
도 27은, 본 발명의 실시의 형태 2에 있어서의 속성 정보 테이블의 일례를 나타내는 도면이다.
도 28은, 네트워크 라이브러리의 내부 구성의 일례를 나타내는 도면이다.
도 29는, 네트워크 라이브러리의 내부 구성에 포함되는 제어부가 제공하는 Java API의 일례를 나타내는 도면이다.
도 30은, 네트워크 라이브러리에서 사용되는 NetDevice 클래스의 구성의 일례를 나타내는 도면이다.
도 31은, 네트워크 라이브러리에서 사용되는 ServHandler 인터페이스의 구성의 일례를 나타내는 도면이다.
도 32는, 본 발명의 실시의 형태 2에 있어서의 URI 테이블의 구성의 일례를 나타내는 도면이다.
도 33은, 네트워크 라이브러리에서 사용되는 ReopenContentInfo 클래스의 구성의 일례를 나타내는 도면이다.
도 34는, 본 발명의 실시의 형태 2에 있어서의 재개 위치 정보 테이블의 구성의 일례를 나타내는 도면이다.
도 35는, 네트워크 라이브러리의 내부 구성에 포함되는 정보 수신부가 제공하는, 네트워크 라이브러리가 구비하는 Java API의 일례를 나타내는 도면이다.
도 36은, 네트워크 라이브러리에서 사용되는 RequestInfo 클래스의 구성의 일례를 나타내는 도면이다.
도 37은, 네트워크 라이브러리의 내부 구성에 포함되는 데이터 출력부가 제공하는, 네트워크 라이브러리가 구비하는 Java API의 일례를 나타내는 도면이다.
도 38은, 네트워크 라이브러리에서 사용되는 ResponseInfo 클래스의 구성의 일례를 나타내는 도면이다.
도 39는, 네트워크 라이브러리의 내부 구성에 포함되는 정보 수신부가 제공 하는, 네트워크 라이브러리가 구비하는 Java API의 일례를 나타내는 도면이다.
도 40은, 네트워크 라이브러리(1605e)의 내부 구성에 포함되는 데이터 수신부가 제공하는 Java API의 일례를 나타내는 도면이다.
도 41은, 본 발명의 실시의 형태 2에 있어서의 단말의 구성의 일례를 나타내는 블록도이다.
도 42는, 본 발명의 실시의 형태 2에 관한 단말의 각각에 유지되고, 실행되는 프로그램의 구성의 일례를 나타내는 도면이다.
도 43은, 네트워크 라이브러리의 내부 구성의 일례를 나타내는 블록도이다.
도 44는, 네트워크 라이브러리의 내부 구성에 포함되는 제어부가 제공하는 Java API의 일례를 나타내는 도면이다.
도 45는, 네트워크 라이브러리에서 사용되는 ContentInfo 클래스의 구성의 일례를 나타내는 도면이다.
도 46은, 네트워크 라이브러리에서 사용되는 ClientHandler 인터페이스의 구성의 일례를 나타내는 도면이다.
도 47은, 네트워크 라이브러리의 내부 구성에 포함되는 정보 송신부가 제공하는 Java API의 일례를 나타내는 도면이다.
도 48은, 네트워크 라이브러리의 내부 구성에 포함되는 정보 수신부가 제공하는 Java API의 일례를 나타내는 도면이다.
도 49는, 네트워크 라이브러리의 내부 구성에 포함되는 판정부가 제공하는 Java API의 일례를 나타내는 도면이다.
도 50은, 네트워크 라이브러리의 내부 구성에 포함되는 데이터 수신부가 제공하는 Java API의 일례를 나타내는 도면이다.
도 51은, 네트워크 라이브러리(3004d)에서 사용되는 RemoteProgram 클래스의 구성의 일례를 나타내는 도면이다.
도 52는, 본 발명의 실시의 형태 2의 제6 변형예에 있어서의 멀티미디어 배포 시스템의 구성을 나타내는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
101, 1301, 1201, 5201:데이터 출력 장치
102, 103, 1203, 1204, 1302, 1303, 5203, 5204:단말
104, 1205, 1304, 5205:네트워크
105, 1206, 1305, 5206:멀티미디어 배포 시스템
201:제어부 202, 1404:수신부
203:축적부 204:독출부
205:제1 출력부 206:제2 출력부
207:기억부 208:기록부
209:네트워크 인터페이스 301:기기 제어부
302:제어부 303:수신부
304:송신부 305:판정부
306, 1001:데이터 수신부 307, 1101:데이터 복호부
308:네트워크 인터페이스 309, 1102:표시부
401, 402:멀티미디어 데이터
411:멀티미디어 데이터(401)의 속성 정보
412:멀티미디어 데이터(402)의 속성 정보
421:멀티미디어 데이터의 URI 테이블
701, 801, 802, 803, 901, 902:재개 위치 정보
1002:데이터 수신 인터페이스
1202, 5202:제어 장치 1401, 4101:입력부
1402, 4102:제1 메모리 1403, 4103:제2 메모리
1405, 4104:다중 분리부 1406:디스크램블러
1407, 4105:TS디코더 1408, 4106:영상 출력부
1409, 4107:음성 출력부 1410:TS멀티플렉서
1411, 4108:네트워크부 1412, 4109:CPU
(실시의 형태 1)
이하 본 발명의 실시의 형태에 대해서, 도면을 참조하면서 설명한다.
도 1은, 본 발명의 실시의 형태 1에 있어서의 멀티미디어 배포 시스템의 구성도이다.
도 1에 나타내는 멀티미디어 배포 시스템(105)은, 데이터 출력 장치(101)와, 제1의 단말(102)과, 제2의 단말(102)과, 네트워크(104)를 구비한다. 데이터 출력 장치(101), 단말(102) 및 단말(103)은, 네트워크(104)에 접속되어 있고, 네트워 크(104)를 통해 서로 통신 가능하다.
본 실시의 형태에 있어서의 데이터 출력 장치(101)는, 네트워크(104)를 통해서 송신된, 단말(102) 및 단말(103)로부터의 요구를 수신한다. 그리고, 요구에 따라 축적하고 있는 콘텐츠마다의 정보나 속성 혹은 멀티미디어 데이터를, 네트워크(104)를 통해서 단말(102) 및 단말(103)로 송신하는 것이다.
데이터 출력 장치(101)는, 실행 중의 데이터 출력에 대해서, 송신처 단말로부터 중단 요구를 수신하면, 마지막에 송신한 데이터 위치의 다음의 위치 등의 출력을 재개하는 데이터 위치를, 그 데이터의 파일명 혹은 URI(Uniform Resource Identifier)와 조합하여 재개 위치 정보로서 장치 내부에 기억함과 더불어, 그 데이터에 「출력 중단 중」이라는 속성을 부여한다. 그리고, 단말로부터 데이터 송신 재개 요구를 수신했을 때에, 기억해 둔 재개 위치 정보를 참조해, 지정된 단말로, 미송신의 데이터의 선두로부터 데이터 송신을 재개하는 것이다.
단말(102) 및 단말(103)은, 유저의 요구에 따라, 데이터 출력 장치(101)로 멀티미디어 혹은 콘텐츠의 속성의 송신 요구를, 네트워크(104)를 통해서 송신한다. 그리고, 단말(102) 및 단말(103)은, 콘텐츠의 속성을 수신한 경우는, 필요에 따라서 유저에게 제시하고, 멀티미디어 데이터를 수신한 경우는, 그 데이터를 재생해 표시하는 것이다.
단말(102) 및 단말(103)은, 콘텐츠의 속성으로부터, 그 콘텐츠가 「출력 중단 중」인지의 판정을 행할 수 있는 것이며, 유저의 요구에 따라서, 데이터 송신 재개의 요구를 발행하는 것이다.
네트트워크(104)는, 가정 내에 시설된 홈네트워크이며, 이더넷(등록상표), 무선 LAN 등에 의해서 구성된 IP 네트워크이다.
이상과 같이, 본 발명의 데이터 출력 장치(101), 단말(102), 단말(103), 및 멀티미디어 배포 시스템(105)에 있어서는, 예를 들면 단말(102)에서 수신중이었던 데이터의 송신을 중단해도, 다른 단말(103)에 있어서, 적확하게 데이터 통신을 재개하는 것이 가능해진다.
이하, 본 발명의 멀티미디어 배포 시스템(105)를 구성하는, 데이터 출력 장치(101), 단말(102) 및 단말(103)에 대해서, 더욱 상세하게 설명한다. 여기에서는, 단말(102)로 데이터 통신 중에 데이터 송신을 중단하고, 단말(103)로 중단한 데이터 송신을 재개하는 경우를 예로 설명하지만, 다른 경우도 마찬가지이다.
우선, 데이터 출력 장치(101)에 대해 설명한다.
도 2는, 본 발명의 실시의 형태 1에 있어서의 데이터 출력 장치(101)의 구성의 일례를 나타내는 블록도이다.
도 2에 나타내는 데이터 출력 장치(101)는, 제어부(201)와, 외부의 제어 장치로부터의 신호를 수신하는 수신부(202)와, 데이터를 축적하는 축적부(203)와, 제어부(201)로부터의 지시에 따라 축적부(203)로부터 데이터 독출하는 독출부(204)와, 제1 출력부(205)와, 제2 출력부(206)와, 데이터 출력을 중단했을 때에, 그 데이터 및 데이터 출력 중단 위치로부터 얻어지는 재개 위치 정보를 기억하는 기억부(207)와, 축적부(203)에 데이터를 기록하는 기록부(208)와, 네트워크(104)와 접속되는 네트워크 인터페이스(209)를 구비한다.
제어부(201)를 보다 상세하게 설명한다. 제어부(201)는, 마이크로 프로세서, ROM, RAM 등에 의해서 구성되어 있다. ROM, RAM 및 도시하지 않은 정보 기억부에는 마이크로 프로세서로 동작하는 OS, Java(등록상표) VM(Java Virtual Machine) 프로그램, Java 프로그램 라이브러리, Java 응용 프로그램이 보존되어 있다. 마이크로 프로세서는, 기동시에 OS를 읽어들여 실행한다. 계속해서, Java 애플리케이션 기동시에, Java VM을 읽어들여 실행하고, 필요에 따라서 Java 프로그램 라이브러리를 읽어들이면서, Java 애플리케이션을 실행한다.
제어부(201)는, 수신부(202)로부터의 신호를 받고, Java 애플리케이션에 따라서, 독출부(204)와, 제1 출력부(205)와, 제2 출력부(206)와, 기억부(207)와, 기록부(208)의 제어, 및 이들 사이의 데이터 송수신을 행한다.
수신부(202)는, 네트워크 인터페이스(209)에 접속되어 있고, 네트워크 인터페스(209)에 도달한 데이터 출력 장치(101) 앞의 정보를 수신하여, 제어부(201)에 넘겨 준다. 수신부(202)는, 대표적으로는, OS나 Java 라이브러리가 제공하는 소켓 인터페이스 혹은 소켓 인터페이스를 이용한 프로그램이다.
또한, 이러한 소프트웨어로 구성되는 것에 한정되지 않고, 하드웨어로 구성되는 것이어도 된다. 또, 네트워크 인터페이스(209) 외, 예를 들면 적외선 통신을 행하는 통신부 등, 다른 통신부에도 동시에 접속된 것이어도 된다.
축적부(203)는, 하드 디스크 드라이브로 대표되는, 대용량을 갖는 디지털 데이터의 축적 장치와, 그 드라이버 소프트웨어로부터 구성되는 것이다.
독출부(204)는, 제어부(201)로부터의 지시를 받고, 축적부(203)에 축적된 데 이터 파일 중, 지정된 파일의 지정 위치로부터의 데이터를 차례차례 독출하여, 제1 출력부(205) 및 제2 출력부(206)로 전송한다.
제1 출력부(205) 및 제2 출력부(206)는, 네트워크 인터페이스(209)에 접속되어 있고, 제어부(201)의 지시를 받아 동작하고, 제어부(201) 혹은 독출부(204)로부터 보내진 데이터를, 제어부(201)가 지시한 수신처로의 패킷으로 변환하여, 네트워크 인터페이스(209)를 통해서 출력하는 것이다. 제1 출력부(205) 및 제2 출력부(206)는, 대표적으로는, OS나 Java 라이브러리가 제공하는 소켓 인터페이스 혹은 소켓 인터페이스를 이용한 프로그램이다. 또한, 이러한 소프트웨어로 구성되는 것에 한정되지 않고, 하드웨어로 구성되는 것이어도 된다.
기억부(207)는, 플래쉬 메모리나 HDD 등의 기억 장치 혹은 그 일부에 의해서 구성되는 것이며, 제어부(201)로부터의 지시를 받고, 제어부(201)로부터 받은 데이터를 기억하는 것이다.
기록부(208)는, 제어부(201)로부터의 지시를 받고, 축적부(203)에 데이터를 기록하는 것이다. 데이터의 기록에는, 신규로 데이터를 기록하는 경우와, 기존의 데이터에 덮어쓰는 경우의 2개가 있다.
네트워크 인터페이스(209)는, Ether 케이블이나 무선 LAN 등 네트워크의 물리 미디어에 따른 인터페이스를 제공하는 하드웨어와 그 드라이버 소프트웨어로부터 구성되는 것이다.
이하, 도면를 참조하면서, 데이터 출력 장치(101)의 동작을, 더욱 상세하게 설명한다. 여기에서는, 설명을 간단하고 쉽게 하기 위해서, 제1 출력부(205)는 단 말(102)로 출력하는 것이며, 제2 출력부(206)는 단말(103)로 출력하는 것이라고 하지만, 이 구성에 한정되지 않는 것은 말할 것도 없다.
도 4는, 본 발명의 실시의 형태 1에 있어서의 축적부(203)에 축적된 데이터의 구성의 일례를 나타내는 도면이다.
도 4에 있어서, 축적부(203)는, 크게 나누어, 멀티미디어 데이터, 멀티미디어 데이터의 속성 정보, 멀티미디어 데이터의 URI 테이블이라는 3 종류의 데이터군을 축적하고 있고, 멀티미디어 데이터(401)와, 멀티미디어 데이터(402)와, 속성 정보(411)와, 속성 정보(412)와, 멀티미디어 데이터의 URI 테이블(421)을 포함하는 예를 나타낸다. 본 실시의 형태에서는, 속성 정보(411)는 멀티미디어 데이터(401)의 속성 정보를, 속성 정보(412)는 멀티미디어 데이터(402)의 속성 정보를, 각각 나타내는 것으로 한다. 축적부(203)가 축적하고 있는 멀티미디어 데이터나 속성 정보는, 각각 2개로 한정되지 않는다.
멀티미디어 데이터(401, 402)는, 디지털화된 멀티미디어 콘텐츠 데이터이며, 대표적으로는, MPEG2에 의해서 복호화된 데이터이다. 각 멀티미디어 데이터(401, 402)는, 각각, 축적부(203) 상에 있어서, 하나의 파일로서 축적되고, 파일명이 붙여져 있다.
속성 정보(411, 412)는, 멀티미디어 데이터(401, 402)에, 예를 들면, 콘텐츠의 타이틀, 장르, 방송 일시, 녹화 일시, 출력한 회수, 마지막에 출력한 일시 등의, 부가적 정보를 부여하는 것이다. 도 5에, 속성 정보의 일례를 나타낸다.
도 5는, 본 발명의 실시의 형태 1에 있어서의 멀티미디어 데이터의 속성 정 보(411)의 일례를 나타내는 도면이다. 도 5에 나타내는 속성 정보는, XML(Extensible Markup Language)에 의해서 정의된 텍스트 정보이다.
URI 테이블(421)은, 각 멀티미디어 데이터와 그 URI의 대응을 기억하는 것이며, 도 6에 그 일례를 나타낸다.
도 6은, 본 발명의 실시의 형태 1에 관한 URI 테이블(421)의 일례를 나타내는 도면이다. 도 6에 있어서, 파일명 0001.m2ts라고 하는 멀티미디어 데이터의 URI는, rtsp://192.168.0.3/AVData/0001.m2ts인 것을 나타내고 있다.
또한, URI 테이블은, 반드시 필요하지는 않으며, 데이터 출력 장치(101)의 IP 어드레스 혹은 호스트명과, 멀티미디어 데이터의 파일명으로부터, 제어부(201)가 때마다 작성하는 구성이어도 되고, URI를 부가 정보로서 속성 정보 중에 기술하는 구성이어도 된다. 또, URI 테이블은 파일명과 URI의 대응에 한정하는 것이 아니고, 타이틀이나 각 멀티미디어 데이터에 부가된 식별자나 번호 등과 URI의 대응이어도 된다.
우선, 단말(102)로의 데이터 송신을 중단할 때까지의 과정에 있어서의 데이터 출력 장치(101)의 동작을 설명한다.
제어부(201)는, 수신부(202)로부터 받은 단말(102)의 요구가 콘텐츠 일람 취득이었던 경우, 판독부(204)를 제어해 정보를 독출함으로써, 축적부(203)에 축적된 멀티미디어 데이터의 일람표를 작성하여, 제1 출력부(205)로부터 단말(102)로 송신한다.
콘텐츠 일람이란, 각 콘텐츠에 대해, 적어도 콘텐츠의 타이틀, 콘텐츠에 액 세스하기 위한 URI를 포함하고 있는 것이다. 또, 멀티미디어 데이터의 출력을 중단하고 있는 경우는, 그 속성도 포함되어 있는 것이다. 그 외, 필요에 따라서, 각 멀티미디어 데이터마다 그 속성 정보를 독출하고, 그 내용을 부가해 송신한다.
콘텐츠 일람의 취득 요구와 그에 대한 회신의 프로토콜, 및, 콘텐츠 일람의 데이터 포맷은, UPnP AV에 규정되어 있는 방법을 이용할 수 있으므로, 자세한 것은 생략한다. 다만, 멀티미디어 데이터 출력 중단의 속성은, 독자적으로 이 포맷을 확장한 것을 이용한다. 콘텐츠 일람의 포맷은, XML에 의해서 정의되어 있으므로, XML Namespace를 이용함으로써, 모순 없이 포맷을 확장 가능하다. 예를 들면, 독자적인 네임 스페이스 Na를 사용한 요소 PAUSE를 각 콘텐츠의 정보에 추가하고, 이 PAUSE 요소의 내용이 「Yes」인 경우는, 출력 중단 중인 것을 나타내는 것으로 할 수 있다.
또, 제어부(201)는, 수신부(202)로부터 받은 단말(102)의 요구가 데이터 송신 요구였을 경우, 독출부(204)에 지시해 요구된 멀티미디어 데이터를 축적부(203)로부터 독출시키고, 제1 출력부(205)에 지시해 독출한 데이터를 송신한다. 예를 들면, 송신 요구로서 RTSP를 사용하여, URI가 rtsp://192.168.0.3/AVData/0001.m2ts의 데이터를, 선두로부터 송신하는 요구인 경우, 이하의 메시지가 단말(102)로부터 데이터 출력 장치(101)로 송신된다.
PLAY rtsp://192.168.0.3/AVData/0001.m2ts RTSP/1.0
CSeq:2
Session:12345
Range:smtpe=0:00:00
제어부(201)는, 상기 메시지를 받으면, 독출부(204)에 독출시킨 URI 테이블(421)을 참조하여, URI가 rtsp://192.168.0.3/AVData/0001.m2ts인 멀티미디어 데이터를 검색한다. 본 실시의 형태의 경우, 멀티미디어 데이터(401)가 그에 해당한다. 대응하는 멀티미디어 데이터가 존재하면, 제어부(201)는, RTSP에 규정된 이하와 같은 회답 메시지를 작성하여, 제1 출력부(205)에 지시해 단말(102)에 송신시킨다.
RTSP/1.0 200 OK
CSeq:2
Session:12345
Range:smtpe=0:00:00-0:55:00
RTP-lnfo:url=rtsp://192.168.0.3/AVData/0001.m2ts;seq=123123532;rtptime=
53265
그 후, 독출부(204)에 지시해 멀티미디어 데이터(401)의 선두로부터 차례차례 데이터를 독출시키고, 제1 출력부(205)에 지시해 독출한 데이터를 단말(102)로 송신한다. 데이터 송신은 RTP에 규정된 방법으로 행해지기 때문에, 자세한 것은 생략한다.
제어부(201)는, 수신부(202)로부터 받은 단말(102)의 요구가 데이터 송신 중단이었을 경우, 제1 출력부(205)에 지시하여 데이터 송신을 정지시킴과 더불어, 송신 완료된 데이터수를 제1 출력부(205)로부터 받는다. 또, 독출부(204)에 지시하 여, 축적부(203)로부터의 데이터의 독출을 정지시킨다. RTSP를 이용하는 경우, 데이터 송신 중단은 PAUSE 커멘드를 이용해 행할 수 있다. 이것은, 이하의 메시지가 단말(102)로부터 송신된다.
PAUSE rtsp://192.168.0.3/AVData/0001.m2ts RTSP/1.0
CSeq:3
Session:12345
제어부(201)는, 상기의 PAUSE 커멘드를 수신하면, 데이터 송신을 정지시키고, 이하의 회답 메시지를 작성하고, 제1 출력부(205)에 송신시킨다.
RTSP/1.0 200 OK
CSeq:3
Session:12345
또, 독출부(204)에 지시해 속성 정보(411)을 독출하고, 출력 중단 중인 속성을 추가한다. 본 실시의 형태에 있어서는, 도 5에 나타낸 속성 정보 중, 「PAUSE」라고 하는 요소로 나타내는 것으로 한다. 즉, PAUSE 요소가 있고, 그 내용이 「Yes」인 경우에 한해, 데이터 송신을 중단하고 있는 상태를 나타내는 것으로 한다.
제어부(201)는, 속성 정보(411)를 갱신한 후, 기록부(208)에 지시해, 축적부(203) 상의 속성 정보(411)에 덮어쓰게 한다.
제어부(201)는, 또한, 제1 출력부(205)로부터 받은 송신 완료된 데이터수로부터, 데이터 송신의 재개시의 선두가 되는 송신 재개 위치를 구하다. 이것은, 예를 들면, 선두로부터 50119 바이트의 데이터를 송신한 경우는, 선두로부터 50120 바이트째가 된다.
제어부(201)는, 이 송신 재개 위치와 멀티미디어 데이터(401)를 식별하는 정보, 예를 들면 파일명을 세트로 하여, 재개 위치 정보를 작성하고, 기억부(207)에 기억시킨다. 도 7에 이 재개 위치 정보의 일례를 나타낸다.
도 7은, 본 발명의 실시의 형태 1에 있어서의 재개 위치 정보의 일례를 나타내는 도면이다. 도 7은, 상기의 데이터 송신 중단에 있어서의 재개 위치 정보(701)를 나타낸다. 또한, 본 실시의 형태에 있어서는, 제1 출력부(205)로부터 받은 송신 완료된 데이터수를 기본으로 송신 재개 위치를 요구했지만, 독출부(204)로부터 받은, 예를 들면, 독출 완료된 데이터수를 바탕으로 구하는 것이어도 된다.
RTSP에서는, 이후에, 세션을 절단하는 TEARDOWN이라고 하는 커멘드가 송수신 되지만, 본 실시의 형태에서는, TEARDOWN을 행해도, 상기의 재개 위치 정보(701) 및 속성 정보(411)는 갱신하지 않는다.
또한, 보다 명확하게 후에 재개하는 중단인 것을 나타내기 위해서, PAUSE 혹은 TEARDOWN을 확장하고, 재개 위치 정보(701)의 작성·유지 및 속성 정보(411)의 갱신·유지를 요구하는 구성이어도 된다. 예를 들면, 독자 확장 헤더인 X-Keep-Pause-Status를 이용해, 그 값이 「Yes」인 경우에 한해, 재개 위치 정보(701)을 작성·유지 및 속성 정보(411)을 갱신·유지하는 것으로 하면, 상기의 PAUSE 메시지는 이하와 같이 된다.
PAUSE rtsp://192.168.0.3/AVData/0001.m2ts RTSP/1.0
CSeq:3
Session:12345
X-Keep-Pause-Status:Yes
이 경우, 제어부(201)는, 수신한 PAUSE 메시지에 X-Keep-Pause-Status 헤더가 있고, 또한 그 값이 「Yes」이므로, 재개 위치 정보(701)를 작성하여 유지하고, 또, 속성 정보(411)를 갱신하여 유지한다. X-Keep-Pause-Status 헤더가 없거나, 있어도 값이 「Yes」이외인 경우는, 제어부(201)는, 재개 위치 정보(701)을 작성하지 않고, 또, 속성 정보(411)를 갱신하지 않는다.
다음에, 단말(103)과의 통신에 있어서, 상기의 중단한 데이터 송신을 재개하는 과정의 데이터 출력 장치(101)의 동작을 설명한다.
우선, 콘텐츠 일람 취득에 관해서는, 상기와 같으므로, 설명을 생략한다.
제어부(201)는, 수신부(202)로부터 받은 단말(103)의 요구가 중단한 데이터 송신의 재개였던 경우의 처리를 설명한다. 본 실시의 형태에 있어서는, 이 요구는, RTSP의 PLAY에, 독자 확장 헤더인 X-Restart를 이용하고, 그 값을 「Yes」라고 함으로써 행하는 것으로 한다. 이 경우, 단말(103)로부터 이하의 메시지가 송신된다.
PLAY rtsp://192.168.0.3/AVData/0001.m2ts RTSP/1.0
CSeq:2
Session:54321
X-Restart:Yes
제어부(201)는, 우선, URI 테이블(421)을 참조하면서, PLAY 메시지로 보내져 온 URI의 멀티미디어 데이터(이 경우는 멀티미디어 데이터(401))의 재개 위치 정보를, 기억부(207)에 기억된 재개 위치 정보로부터 검색한다. 이 경우는, 재개 위치 정보(701)가 해당한다.
제어부(201)는, 재개 위치 정보(701)로부터, 재개 위치가 선두로부터 50120 바이트째인 것을 판독하고, 독출부(204)에 멀티미디어 데이터(401)의 선두로부터 50120 바이트째부터 독출하도록 지시를 보낸다. 독출부(204)는, 지시를 받아 데이터의 독출을 개시한다.
제어부(201)는, 계속해서, 이하의 회답 메시지를 작성하여, 제2 출력부(206)에 지시하고, 단말(103)로 송신시킨다. 또한, 50120 바이트째는, 멀티미디어 데이터(401)의 선두로부터 8분째로 하고 있다.
RTSP/1.0 200 OK
CSeq:2
Session:54321
Range:smtpe=0:08:00-0:55:00
RTP-Info:url=rtsp://192.168.0.3/AVData/0001.m2ts;seq=123073412;rtptime=
52865
계속해서, 제어부(201)는, PLAY 메시지가 단말(103)로부터 보내져 온 것으로부터, 데이터의 송신처를 단말(103)로 판정하고, 제2 출력부(206)에 지시하여, 독출부(204)가 독출한 데이터를, 단말(103)로 송신시킨다. 또, 제어부(201)는, 재개 위치 정보(701)를 기억부로부터 삭제함과 더불어, 속성 정보(411)로부터, 「출력 중단 중」인 속성을 삭제하고, 속성 정보(411)을 갱신한다.
또한, 본 실시의 형태의 경우, 제어부(201)는, RTSP 메시지가 보내져 온 단말을, 송신처 단말로 판정하는 것으로 했기 때문에, 단말(103)로부터 송신처 단말인 출력처의 명시적인 지정을 생략하고 있다. 이 경우, 출력처는 수신 패킷이나 소켓 인터페이스로부터 얻을 수 있다. 또, UPnP AV에 규정되어 있는 방법, 혹은, PLAY 메시지에, 독자 확장을 더하는 등에 의해, 송신처를 지정하는 구성이어도 된다.
다음에, 단말(102) 및 단말(103)에 대해 설명한다.
도 3은, 본 발명의 실시의 형태 1에 있어서의 단말(102) 및 단말(103)의 구성의 일례를 나타내는 블록도이다.
도 3에 나타내는 단말(102) 및 단말(103)은, 기기 제어부(301)와, 제어부(302)와, 데이터 출력 장치(101)로부터 송신된 메시지를 수신하는 수신부(303)와, 데이터 출력 장치(101)에 요구 메시지를 송신하는 송신부(304)와, 수신부(303)가 수신한 메시지 중, 멀티미디어 데이터의 속성을 해석해 출력 중단 중인지를 판정하는 판정부(305)와, 데이터 출력 장치(101)로부터 송신된 멀티미디어 데이터를 수신하는 데이터 수신부(306)와, 수신한 멀티미디어 데이터를 복호하는 데이터 복호부(307)와, 네트워크(104)와 접속되는 네트워크 인터페이스(308)와, 복호한 멀티미디어 데이터를 표시하는 표시부(309)를 구비한다.
기기 제어부(301)는, 보다 상세하게는, 제어부(302)와, 수신부(303)와, 송신부(304)와, 판정부(305)를 갖는다.
제어부(302)를 보다 상세하게 설명한다. 제어부(302)는, 마이크로 프로세서, ROM, RAM 등에 의해서 구성되어 있다. ROM, RAM 및 도시하지 않은 정보 기억부에는 마이크로 프로세서에서 동작하는 OS, Java VM 프로그램, Java 프로그램 라이브러리, Java 응용 프로그램이 보존되어 있다.
마이크로 프로세서는, 기동시에 OS를 읽어들여 실행한다. 계속해서, Java 애플리케이션 기동시에, Java VM을 읽어들여 실행하고, 필요에 따라서 Java 프로그램 라이브러리를 읽어들이면서, Java 애플리케이션을 실행한다. 제어부(302)는, 도시하지 않은 유저 인터페이스부로부터 유저의 요구를 받아서, Java 애플리케이션에 따라서, 수신부(303)와, 송신부(304)와, 판정부(305)와, 데이터 수신부(306)과, 데이터 복호부(307)와, 표시부(309)의 제어, 및 이들 사이의 데이터 송수신을 행한다.
수신부(303)는, 네트워크 인터페이스(308)에 접속되어 있고, 네트워크 인터페이스(308)에 도달한 그 단말 앞의 정보를 수신하고, 제어부(302)에 넘겨 준다. 수신부(303)는, 대표적으로는, OS나 Java 라이브러리가 제공하는 소켓 인터페이스 혹은 소켓 인터페이스를 이용한 프로그램이다. 또한, 이러한 소프트웨어로 구성되는 것에 한정되지 않고, 하드웨어로 구성되는 것이어도 된다.
송신부(304)는, 네트워크 인터페이스(308)에 접속되어 있고, 제어부(302)의 지시를 받아 동작하고, 제어부(302)로부터 보내진 데이터를, 제어부(302)가 지시한 수신처로의 패킷으로 변화하여, 네트워크 인터페이스(308)을 통해서 송신하는 것이다. 송신부(304)는, 대표적으로는, OS나 Java 라이브러리가 제공하는 소켓 인터페 이스 혹은 소켓 인터페이스를 이용한 프로그램이다. 또한, 이러한 소프트웨어로 구성되는 것에 한정되지 않고, 하드웨어로 구성되는 것이어도 된다.
판정부(305)는, 제어부(302)의 지시에 의해, 수신부(303)가 수신한 메시지를 해석하고, 그 중에 포함되는 멀티미디어 데이터의 속성을 검색하여 그 멀티미디어 데이터가 「출력 중단 중」인지의 여부를 판정하고, 그 결과를 제어부(302)로 되돌려 보내는 것이다. 판정부(305)는, 대표적으로는, Java 라이브러리 혹은 Java 애플리케이션 프로그램에 포함되는 서브루틴이다. 또한, 이러한 소프트웨어로 구성되는 것에 한정되지 않고, 하드웨어로 구성되는 것이어도 된다.
데이터 수신부(306)은, 네트워크 인터페이스(308)와 접속되어 있고, 제어부(302)의 지시에 따라서, 데이터 출력 장치(101)로부터 송신된 멀티미디어 데이터를 수신하고, 데이터 복호부(307)에 넘겨 주는 것이다. 데이터 수신부(306)는, 대표적으로는, OS나 Java 라이브러리가 제공하는 소켓 인터페이스 혹은 소켓 인터페이스를 이용한 프로그램이다. 또한, 이러한 소프트웨어로 구성되는 것에 한정되지 않고, 하드웨어로 구성되는 것이어도 된다.
데이터 복호부(307)는, 제어부(302)의 지시에 따라서, 보내져 온 멀티미디어 데이터를 복호하는 것이다. 상기한 바와 같이, 멀티미디어 데이터는, MPEG2로 대표되는 복호와 방식에 의해서 복호화되어 있다. 데이터 복호부(307)는, 이 데이터를 복호하고, 표시부(309)로 복호한 데이터를 송신한다. 데이터 복호부(307)는, 대표적으로는 하드웨어 디코더와 그 드라이버 소프트웨어로 구성되는 것이다.
네트워크 인터페이스(308)는, 상기의 네트워크 인터페이스(209)와 같은 구성 이다.
표시부(309)는, 모니터 및 스피커로 구성되는 것, 혹은, 외부의 모니터, 스피커로 영상·음성 신호를 송출하는 것이다.
이하, 단말(102) 및 단말(103)의 동작에 대해서, 상기와 같이, 단말(102)로 데이터 통신 중에 데이터 송신을 중단하고, 단말(103)로 중단한 데이터 송신을 재개하는 경우를 예로 설명한다. 또한, 단말(102) 및 단말(103)은, 적어도 데이터 출력 장치(101)가 네트워크(104)에 접속되어 있고, 멀티미디어 콘텐츠 데이터를 제공하는 서버인 것을, 이미 인식하고 있는 것으로 한다. 이러한, 네트워크 상의 기기의 발견, 및, 그 능력의 검지는, UPnP DA(Device Architecture)로 정의된 방법으로 행할 수 있기 때문에, 상세한 설명은 생략한다.
우선, 단말(102)에서, 영상 재생의 중단까지의 과정에서의 동작에 대해 설명한다.
제어부(302)는, 유저로부터의 요구에 따라, 콘텐츠 일람 송신 요구 메시지를 작성하고, 송신부(304)에 지시하여 데이터 출력 장치(101)로 송신한다. 또한, 수신부(303)에 의해서, 데이터 출력 장치(101)로부터 송신된 콘텐츠 일람 메시지를 수신하고, 콘텐츠의 타이틀 등의 정보를 유저에게 제시한다. 유저에게의 제시는, 표시부(309)를 이용해 행해도 되고, 또, 도시하지 않은 다른 제시부에 의해서 행해도 된다.
다음에, 제어부(302)는, 유저로부터 제시한 콘텐츠 중 하나를 선택한 재생 요구를 받으면, 데이터 송신 요구 메시지를 작성하고, 송신부(304)에 지시하여 데 이터 출력 장치(101)로 송신한다. 데이터 송신 요구 메시지의 일례는, 상기의 RTSP에 있어서의 PLAY 메시지이다. 계속해서, 수신부(303)에 의해, 데이터 출력 장치(101)로부터 회답 메시지를 수신한다. 회답 메시지의 일례는, 상기의 PLAY 메시지에 대한 회답이다.
회답 메시지가, 송신 개시이면, 제어부(302)는, 데이터 수신부(306)에 지시하여, 데이터 출력 장치(101)로부터 송신된 멀티미디어 데이터를 수신시키고, 또, 데이터 복호부(307)에 지시하여, 수신한 멀티미디어 데이터를 복호시키고, 또한, 표시부(309)에 지시하여, 복호한 멀티미디어 데이터를 표시시킨다.
또, 제어부(302)는, 회답 메시지가, 송신 불가능하면, 그것을 유저에게 제시한다.
다음에, 제어부(302)는, 유저로부터 재생 중단의 요구를 받으면, 데이터 송신 중단 요구 메시지를 작성하고, 송신부(304)에 지시하여 데이터 출력 장치(101)로 송신한다. 데이터 송신 중단 요구 메시지의 일례는, 상기의 RTSP에 있어서의 PAUSE 메시지이다.
계속해서, 제어부(302)는, 수신부(303)에 의해, 데이터 출력 장치(101)로부터의 회답 메시지를 수신함과 더불어, 데이터 수신부(306)에는 멀티미디어 데이터의 수신 동작을, 데이터 복호부(307)에는 데이터의 복호를, 표시부(309)에는 데이터의 표시를, 각각 지시해 정지시킨다.
다음에, 단말(103)에 있어서, 단말(102)에서 중단시킨 재생을 재개하는 동작에 대해서 설명한다.
우선, 제어부(302)는, 유저의 요구에 따라, 상기와 같은 방법으로, 콘텐츠 일람 메시지를 데이터 출력 장치(101)로부터 취득한다.
다음에, 제어부(302)는, 상기와 같이, 수신한 콘텐츠 일람 메시지로부터, 콘텐츠의 타이틀 등의 정보를 유저에게 제시한다. 이때, 제어부(302)는, 판정부(305)에 지시하여, 데이터 출력 중단 중인 콘텐츠를 판정시키고, 그 정보와 함께 제시한다. 데이터 출력 중단 중인 제시는, 예를 들면, 콘텐츠의 타이틀 부분에 마크를 붙이는, 콘텐츠의 타이틀을 다른 색으로 표시하는, 별도 중단 중인 일람을 만들어 제시하는, 등의 방법에 의해 행할 수 있다.
계속해서, 제어부(302)는, 유저로부터 출력 중단 중인 콘텐츠의 재생 재개 요구를 받으면, 그 콘텐츠의 데이터 송신 재개 요구 메시지를 작성하고, 송신부(304)에 지시하여 데이터 출력 장치(101)로 송신한다. 데이터 송신 재개 요구 메시지의 일례는, 상기의 PLAY 메시지에 확장 헤더 X-Restart를 추가한 것이다.
계속해서, 수신부(303)에 의해, 데이터 출력 장치(101)로부터 회답 메시지를 수신한다. 회답 메시지의 일례는, 상기의 X-Restart 헤더 부착 PLAY 메시지에 대한 회답이다.
회답 메시지가, 송신 개시이면, 제어부(302)는, 데이터 수신부(306)에 지시하여, 데이터 출력 장치(101)로부터 송신된 멀티미디어 데이터를 수신시키고, 또, 데이터 복호부(307)에 지시하여, 수신한 멀티미디어 데이터를 복호시키고, 또한, 표시부(309)에 지시하여, 복호한 멀티미디어 데이터를 표시시킨다.
또, 제어부(302)는, 회답 메시지가, 송신 불가능하면, 그것을 유저에게 제시 한다.
또한, 본 실시의 형태에 있어서는, RTSP의 커멘드 메시지를 송신한 단말이, 데이터 출력 장치(101)에 있어서의 데이터의 출력처로 하고 있으므로, 단말(103)로부터 송신처 단말인 출력처의 명시적인 지정을 생략하고 있지만, UPnP AV에 규정되어 있는 방법, 혹은, PLAY 메시지에, 독자 확장을 추가하는 등에 의해, 송신처를 지정하는 구성이어도 된다.
이상, 설명한 바와 같이, 실시의 형태에 관한 멀티미디어 배포 시스템(105)을 구성하는 데이터 출력 장치(101)는, 데이터 출력 중에 단말로부터 데이터 출력 중단 요구를 받으면, 출력을 중단한 멀티미디어 데이터 및 출력 중단 위치로부터 얻어지는 재개 위치 정보를 장치 내부에 기억하고, 단말로부터의 데이터 출력 재개 요구와 출력처 단말을 받으면, 기억한 재개 위치 정보를 독출하여, 데이터 출력을 재개하는 것이다.
또, 본 실시의 형태에 관한 단말(102) 및 단말(103)은, 어느 멀티미디어 데이터가, 데이터 출력 장치(101)에 있어서, 출력 중단 중이라고 판정한 경우에, 데이터 출력 재개 요구와, 출력처 단말을 송신함으로써, 데이터 출력 장치(101)에, 데이터 출력을 재개시키는 기기 제어부(301)를 포함하는 것이다. 이 구성에 의해, 예를 들면, 단말(102)에서, 어느 멀티미디어 콘텐츠의 시청을 중단하고, 단말(103)에서, 그 멀티미디어 콘텐츠의 시청을, 중단한 위치로부터 재개하는 등이 가능해진다.
(실시의 형태 1의 변형예)
본 발명의 실시의 형태 1에 대해 설명해 왔지만, 본 발명은, 상기의 실시의 형태 1에 한정되는 것은 아니다. 이하와 같은 경우도, 본 발명에 포함된다.
(1)데이터 출력 장치(101)는, 데이터 출력을 중단할 때에, 이 중단을 식별하는 식별자를 발행하여, 재개 위치 정보와 더불어 기억부(207)에 기억시키고, 콘텐츠 일람에 이 식별자를 포함하여 단말에 송신하고, 데이터 출력 재개 요구와 함께 이 식별자를 수신했을 때에, 데이터 출력을 재개하는 구성이어도 된다. 도 8에, 이 경우에 기억부(207)에 기억되는 데이터의 일례를 나타낸다.
도 8은, 본 발명의 실시의 형태 1의 제1의 변형예에 있어서의 재개 위치 정보의 일례를 나타내는 도면이다. 도 8에 나타내는 바와 같이, 기억부(207)에는, 재개 위치 정보(801)와, 재개 위치 정보(802)와, 재개 위치 정보(803)가 기억되어 있는 예를 나타낸다. 예를 들면, 재개 위치 정보(801)는, 식별자 ID1의 중단에 관한 것이며, 파일명 0001.m2ts의 멀티미디어 데이터를 50120 바이트째부터 재개하는 것을 나타내고 있다.
또, 단말(102) 및 단말(103)의 기기 제어부(301)는, 상기 식별자를 취득했을 때, 데이터 출력 재개 요구와 함께, 상기 식별자를 송신하는 구성이어도 된다.
또, 상기 식별자를, 출력 중단 중인 속성값으로서 이용해도 된다. 즉, 도 5에 있어서, PAUSE 요소의 내용을, 이 식별자로 설정하고, PAUSE 요소가 있고, 또한 그 내용이 기술되어 있는 경우는 출력 중단 상태이며, PAUSE 요소가 없거나, PAU SE 요소가 있어도 내용을 갖지 않는 공요소인 경우는, 출력 중단 상태가 아니라고 해도 된다.
또, 데이터 출력 장치(101)가 출력하는 콘텐츠 일람에서 출력 중단을 나타내는 속성의 값으로서, 상기의 식별자를 이용하는 것으로 해도 된다.
또, 데이터 출력 장치(101)는, 상기 식별자를 데이터 출력 중단 요구의 회답으로 단말에 회신하고, 콘텐츠 일람에는, 상기 식별자를 포함하지 않는 구성이어도 된다. 이 경우는, 식별자를 알고 있는 유저만이, 출력을 재개할 수 있으므로, 시큐러티 향상 등의 효과가 얻어진다.
또, 상기 식별자는, 단말로부터 데이터 출력 장치(101)에 제공되는 것이어도 된다. 또한, 데이터 출력 장치(101)는, 콘텐츠 일람에는, 상기 식별자를 포함하지 않는 구성이어도 된다. 이 경우도, 마찬가지로 식별자를 알고 있는 유저만이, 출력을 재개할 수 있으므로, 시큐러티 향상 등의 효과가 얻어진다.
(2)단말(102) 및 단말(103)은, 데이터 출력 중단 요구를 송신할 때에, 데이터 출력 재개시의 출력처도 송신하는 구성이며, 데이터 출력 장치(101)는, 재개 위치 정보와 함께 상기 출력처를 기억부(207)에 보존하고, 그 데이터의 데이터 출력 재개 요구를 받았을 때에, 상기 출력처로 그 데이터를 출력하는 구성이어도 된다. 이 경우의 데이터 출력 중단 요구의 일례로서는, 상기 실시의 형태에 있어서의 PAUSE 커멘드 메시지에, 확장 헤더 X-Reopen-Terminal을 추가하고, 그 값으로서 특정 단말을 기술하는 것이다. 출력처로서는, 단말의 IP 어드레스이어도 되고, 각 단말의 호스트명이어도 되고, 각 단말에 붙인 닉네임이어도 된다. 이러한 정보는, UPnP DA로 정의된 방법에 따라 취득 가능하다. 도 9에, 이 경우에 기억부(207)에 기억되는 데이터의 일례를 나타낸다.
도 9는, 본 발명의 실시의 형태 1의 제2의 변형예에 있어서의 재개 위치 정보 일례를 나타내는 도면이다. 도 9에 나타내는 바와 같이, 기억부(207)에는, 재개 위치 정보(901)와, 재개 위치 정보(902)가 기억되어 있다. 예를 들면, 재개 위치 정보(901)는, 파일명 0001.m2ts의 멀티미디어 데이터의 출력을 50120 바이트째부터 재개하고, 그 출력처는 단말 T1인 것을 나타내고 있다.
또, 데이터 출력 장치(101)는, 데이터 출력 중단 요구와 더불어, 데이터 출력 재개시의 출력처를 수신한 경우, 당해 출력처인 단말로부터의 요구에 따라서만, 데이터 출력을 재개하는 구성이어도 된다.
또, 데이터 출력 장치(101)는, 데이터 출력 중단 요구와 더불어, 데이터 출력 재개시의 출력처를 수신한 경우, 데이터 출력 재개 요구와 함께 출력처도 수신하여, 기억하고 있는 출력처와 조합하고, 일치한 경우만, 데이터 출력을 재개하는 구성이어도 된다.
또한, 데이터 출력 장치(101)는, 데이터 출력 중단 요구와 더불어, 데이터 출력 재개시의 출력처를 수신하는 경우, 데이터 출력 재개시의 출력처는, 특정의 출력처가 선택될 뿐만 아니라, 후보가 되는 출력처의 일부 또는 전부가 선택되어도 된다.
이 경우, 예를 들면, 데이터 출력 장치(101)가 데이터 출력 중단 요구와 더불어, 출력 재개시의 출력처로서 특정의 출력처를 수신한 경우, 당해 출력처인 단말로부터의 요구에 의해서만, 데이터 출력을 재개한다. 또, 데이터 출력 장치(101)가 데이터 출력 중단 요구와 더불어, 출력 재개시의 출력처로서 후보가 되 는 출력처의 일부 또는 전부를 수신한 경우, 출력 재개시의 출력처로서 수신한 출력처 중 어느 하나인 단말로부터의 요구에 의해서만, 데이터 출력을 재개한다.
(3)데이터 출력 장치(101)는, 외부로부터의 데이터를 수신하는 데이터 수신부를 더 구비하고, 축적부(203)에 축적된 데이터, 및, 수신부가 수신한 데이터를 송신하는 구성이어도 된다. 도 10에, 이 경우의 대표적인 구성도를 나타낸다.
도 10은, 본 발명의 실시의 형태 1의 제3의 변형예에 관한 데이터 출력 장치의 구성의 일례를 나타내는 블록도이다.
도 10에 나타내는 데이터 출력 장치는, 데이터 수신부(1001)와, 수신 인터페이스(1002)와, 제어 수단(201)과, 수신 수단(202)과, 축적 수단(203)과, 독출 수단(204)과, 제1 출력 수단(205)과, 제2 출력 수단(206)과, 기억 수단(207)과, 기록 수단(208)과, 네트워크 인터페이스(209)를 구비한다.
데이터 수신부(1001)는, 수신 인터페이스(1002)가 수신한 신호로부터 멀티미디어 데이터를 추출하는 것으로, 대표적으로는, 디지털 방송의 튜너 등이다. 이 경우, 수신 인터페이스(1002)는 안테나가 된다.
또, 도 10에 있어서, 제어 수단(201)과, 수신 수단(202)과, 축적 수단(203)과, 독출 수단(204)과, 제1 출력 수단(205)과, 제2 출력 수단(206)과, 기억 수단(207)과, 기록 수단(208)과, 네트워크 인터페이스(209)는, 도 2에 나타낸 것과 같은 것이지만, 제어부(201)는, 또한, 데이터 수신부(1001)를 제어하는 것이며, 제1 출력부(205) 및 제2 출력부(206)는, 데이터 수신부(1001)의 출력인 멀티미디어 데이터를 출력하는 것도 가능한 것이며, 또, 기록부(208)는, 데이터 수신부(1001) 가 수신한 멀티미디어 데이터를 축적부(203)에 기록하는 것이 가능한 것이다.
데이터 수신부(1001)로부터의 멀티미디어 데이터를 출력 중에, 데이터 출력 중단 요구를 받은 경우, 제어부(201)는, 출력하고 있는 제1 출력부(205) 혹은 제2 출력부(206)에 출력을 정지시킴과 더불어, 기록부(208)에 지시하여, 계속하는 데이터 수신부(1001)로부터의 출력인 멀티미디어 데이터를 축적부(203)에 차례차례 기록시킨다.
또한, 그 멀티미디어 데이터의 속성 정보를 작성하여 기록시킴과 더불어, 그 멀티미디어 데이터의 URI를 작성하여, URI 테이블(421)을 갱신한다. 또, 그 멀티미디어 데이터를 기록하는 파일명과, 재개 위치인 그 파일의 선두로부터 재개 위치 정보를 작성하고, 기억부(207)에 기억시킨다.
이상에 의해, 그 멀티미디어 데이터의 출력 재개 요구를 받은 경우, 제어부(201)는, 상기 실시의 형태에서 설명한 바와 같은 방법에 의해서, 데이터 출력 재개를 행하는 것이 가능하다.
또한, 상기에 있어서는, 데이터 출력 중단 요구를 받았을 때에, 잇따르는 데이터를 축적부(203)에 기록하는 것으로 했지만, 데이터 출력 중단 요구를 기다리지 않고, 미리, 그 멀티미디어 데이터의 선두로부터 축적부(203)에 기록해 두는 구성이어도 된다. 이 경우, 출력 재개 위치 정보는, 상기 실시의 형태와 같은 방법에 따라 작성하는 것이 가능하다.
또, 데이터 출력 장치(101)는, 데이터 수신부(1001)의 출력인 멀티미디어 데이터 중, 항상 일정 시간 혹은 일정 용량 분의 데이터를, 도시하지 않은 버퍼 영역 에 넣어 두고, 데이터 출력 중단 요구를 받았을 때에, 이 버퍼 영역에 있는 데이터를 포함해 기록하는 것으로 해도 된다. 또, 데이터 출력 재개 위치를, 이 버퍼 영역에 있는 데이터를 포함해 산출해도 되고, 포함하지 않아도 된다.
(4)데이터 출력 장치(101)는, 멀티미디어 데이터를 복호하는 데이터 복호부와 복호된 멀티미디어 데이터를 표시하는 표시부를 더 구비한 구성이어도 된다. 도 11에, 이 경우의 대표적인 구성도를 나타낸다.
도 11은, 본 발명의 실시의 형태 1의 제4의 변형예에 있어서의 데이터 출력 장치의 구성을 나타내는 블록도이다. 도 11에 나타내는 데이터 출력 장치는, 제어 수단(201)과, 수신 수단(202)과, 축적 수단(203)과, 독출 수단(204)과, 제1 출력 수단(205)과, 제2 출력 수단(206)과, 기억 수단(207)과, 기록 수단(208)과, 네트워크 인터페이스(209)와, 데이터 복호부(1101)와, 표시부(1102)를 구비한다.
제어 수단(201)과, 수신 수단(202)과, 축적 수단(203)과, 독출 수단(204)과, 제1 출력 수단(205)과, 제2 출력 수단(206)과, 기억 수단(207)과, 기록 수단(208)과, 네트워크 인터페이스(209)는, 도 2에 나타낸 바와 같은 것이지만, 제어부(201)는, 또한, 데이터 복호부(1101) 및 표시부(1102)의 제어도 행하는 것만이 다르다. 데이터 복호부(1101)는, 단말(102) 및 단말(103)에 있어서의 데이터 복호부(307)와 같은 것이며, 표시부(1102)는, 표시부(309)와 같은 것이다.
또, 도 11에 있어서는, 제1 출력부(205)가 데이터 복호부(1101)와 접속되어 있다. 이 구성에 있어서도, 상기 실시의 형태와 같은 처리에 의해, 데이터 복호부(1101)로의 데이터 출력인 제1 출력부(205)로부터의 출력을 중단하고, 다른 제2 출력부(206)로부터의 출력으로서 그 데이터 출력을 행하는 것, 및, 제2 출력부(206)로의 데이터 출력을 중단하고, 데이터 복호부(1101)로의 출력인 제1 출력부(205)로부터의 출력으로서 재개하는 것, 등이 가능해진다.
또한, 상기 실시의 형태에도 기재했지만, 수신부(202)는, 적외선 통신 등에 의한 수신을 아울러 가져도 되고, 제어부(201)는, 네트워크(104) 이외로부터 보내지는 요구에 따라서도, 각부를 제어해 동작시키는 것이어도 된다. 이 경우, 예를 들면, 콘텐츠 일람이나 응답 메시지 등은, 제1 출력부(205)로부터 출력하는 것이 아닌, 적절한 메시지로 변환되어, 예를 들면 표시부(1102)에 표시하는 등하여, 유저에게 제시된다.
(5)상기 실시의 형태에 있어서는, 데이터 출력 장치(101)가 재개 위치 정보를 기억하는 것으로 했지만, 네트워크 상의 제3의 기기가 기억해 두는 구성이어도 된다. 도 12에, 이 경우의 멀티미디어 배포 시스템의 구성도를 나타낸다.
도 12는, 본 발명의 실시의 형태 1의 제5의 변형예에 있어서의 멀티미디어 배포 시스템의 구성의 일례를 나타내는 도면이다.
도 12에 나타내는 멀티미디어 배포 시스템(1206)은, 데이터 출력 장치(1201)와 네트워크를 통해서 데이터 출력 장치 및 단말을 제어하는 제어 장치(1202)와, 제1의 단말(1203)과, 제2의 단말(1204)과, 네트워크(1205)를 구비한다. 데이터 출력 장치(1201), 제어 장치(1202), 단말(1203) 및 단말(1204)은, 네트워크(1205)에 접속되어 있고, 네트워크(1205)를 통해 서로 통신 가능하다.
데이터 출력 장치(1201)는, 네트워크(1205)를 통해서 송신된, 제어 장 치(1202), 단말(1203) 및 단말(1204)로부터의 요구를 수신한다. 그리고, 요구에 따라 축적하고 있는 콘텐츠마다의 정보나 속성을, 네트워크(1205)를 통해서 제어 장치(1202)로 송신하고, 또, 요구에 따라 축적하고 있는 콘텐츠의 멀티미디어 데이터를, 네트워크(1205)를 통해서 단말(1203) 및 단말(1204)에 송신하는 것이다. 또, 멀티미디어 데이터의 송신은, 요구에 따라 임의의 장소로부터 송출하는 것이 가능하다.
또, 데이터 출력 장치(1201)는, 실행 중의 데이터 출력에 대해서, 제어 장치(1202) 혹은 송신처 단말로부터 중단 요구를 수신하면, 마지막에 송신한 데이터 위치의 다음의 위치와 같은 출력을 재개하는 데이터 위치와, 그 멀티미디어 데이터의 파일명 혹은 URI를, 제어 장치(1202)로 네트워크(1205)를 통해서 송신하는 것이다.
또한, 후술한 바와 같이, 반드시, 이 경우에 그 멀티미디어 데이터의 파일명 혹은 URI를 송신하지 않아도 된다.
제어 장치(1202)는, 유저의 요구에 의해서 동작하는 것이다.
제어 장치(1202)는, 네트워크(1205)를 통해서, 단말(1203) 및 단말(1204)을 제어하고, 데이터 출력 장치(1201)로부터 멀티미디어 데이터를 수신시키고, 재생시키는 제어를 행한다. 이러한 제어는 UPnP AV로 정의된 방법에 의해 가능하기 때문에, 자세한 것은 생략한다.
또, 제어 장치(1202)는, 데이터 출력 장치(1201)에 요구함으로써, 콘텐츠의 타이틀 등과 같은 정보나 속성을 수신하고, 단말(1203), 단말(1204) 혹은 제어 장 치(1202) 자신의 표시부에 의해서, 유저에게 제시한다. 또, 유저로부터 재생 중단의 요구를 받았을 때, 제어 장치(1202)는, 그 재생을 실행 중인 단말(1203) 혹은 단말(1204)을 제어하고, 데이터 출력 장치(1201)로 데이터 송신 중단 요구를 송신시키는 것과 더불어, 재생을 중단시킨다.
또한, 제어 장치(1202)는, 데이터 출력 장치(1201)와 통신하여, 출력을 재개시키는 데이터 위치와, 그 멀티미디어 데이터의 파일명 혹은 URI와 같은, 그 데이터를 특정할 수 있는 정보를 수신하고, 재개 위치 정보로서 제어 장치(1202) 내에 기억한다.
재개 위치 정보는, 상기의 실시의 형태 1 및 변형예에 관한 재개 위치 정보 중 어느 하나와 같은 것을 이용하는 것이 가능하다.
또한, 그 멀티미디어 데이터의 URI는, 제어 장치(1202)가 재생 요구를 발행할 때에 이용하기 때문에, 재생 중단시에는 기존이며, 반드시, 재생 중단시에 데이터 출력 장치로부터 수신하지 않아도 된다.
제어 장치(1202)는, 또한, 유저로부터 재생 재개 요구와 재생하는 단말이 지정되면, 상기 재개 위치 정보를 독출하고, 그 단말에 재개 위치로부터의 데이터를 데이터 출력 장치(1201)로부터 수신시켜 재생시킨다.
단말(1203) 및 단말(1204)은, 제어 장치(1202)로부터 네트워크(1205)를 통해 송신되는 요구에 따라서, 지정 서버로부터, 지정 멀티미디어 데이터의, 지정 범위의 데이터를 수신하고, 재생, 표시하는 것이다.
네트워크(1205)는, 상기의 실시의 형태 1에 있어서의 네트워크(104)와 같은 것이다.
이상 설명한 바와 같이, 본 구성의 멀티미디어 배포 시스템(1206)에서는, 제어 장치(1202)가 재개 위치 정보를 관리함으로써, 예를 들면, 단말(1203)에서 행하고 있던 멀티미디어 콘텐츠의 재생을 중단하고, 단말(1204)에서 재개하는 등이 가능해진다.
또한, 여기에서는, 제어 장치(1202)는, 데이터 출력 장치(1201)로부터 적어도 출력을 재개시키는 데이터 위치를 수신하고 재개 위치 정보를 작성하는 것으로 했지만, 데이터 출력 장치(1201)가 재개 위치 정보를 작성하고, 제어 장치(1202)는 그것을 수신해 보존하는 구성이어도 된다.
또, 여기에서는, 제어 장치(1202)는, 데이터 출력 장치(1201)로부터 적어도 출력을 재개시키는 데이터 위치를 수신하고 재개 위치 정보를 작성하는 것으로 했지만, 재생을 실행하고 있던 단말(1203) 혹은 단말(1204)로부터, 적어도 마지막에 재생한 데이터 위치 등을 수신하고, 재개 위치 정보를 작성하는 구성이어도 된다.
또, 여기에서는, 제어 장치(1202)가, 단말(1203) 혹은 단말(1204)에 요구를 발행하고, 단말로부터 데이터 출력 장치(1201)로 데이터 송신 요구를 송신하는 구성으로 했지만, 제어 장치(1202)가, 데이터 출력 장치(1201)로 단말(1203) 혹은 단말(1204)로의 데이터 송신 요구를 발행하고, 또한, 그 단말에는, 데이터 출력 장치(1201)로부터의 데이터 수신 요구를 발행하는 구성이어도 된다. 이러한, 데이터 전송 제어는, FTP(File Transfer Protocol)에 의해서 행하는 것이 가능하다.
또, 여기에서는, 네트워크 상의 독립의 제어 장치(1202)가, 재개 위치 정보 를 보존한다고 했지만, 네트워크 상의 임의의 기억부를 갖는 기기가 재개 위치 정보를 보존하고, 데이터 출력 장치, 기기 제어 장치, 단말 중 어느 하나가, 그 재개 위치 정보를 취득, 해석한다고 해도 된다.
(6)상기의 실시의 형태 1에 있어서는, 데이터 전송의 프로토콜로서 RTP/RTSP 를 이용하고 있지만, HTTP(Hyper Text Transport Protocol) 등, 다른 프로토콜을 이용해 행해도 된다. HTTP를 이용하는 경우의 데이터 출력 중단 요구는, HTTP-G ET의 세션을 자르는 것으로 행해도 되고, 다른 세션의 통신으로 행해도 된다. 또, HTTP를 이용하는 경우의 데이터 출력 재개 요구는, HTTP-GET에 상기의 X-Restart와 같은 독자 확장 헤더를 이용해 행해도 된다.
(7)상기의 실시의 형태 1에 있어서는, 송신 재개 위치로서, 마지막 송신 완료된 데이터의 다음의 데이터 위치로 했지만, 특정수의 데이터를 거슬러 올라간 위치로 해도 된다.
또, 송신 재개 위치는, 콘텐츠의 장면의 교체 등, 데이터에 포함되는 콘텐츠를 참조하여, 재개 위치 정보가 작성되어도 된다. 예를 들면, 콘텐츠를 중단한 직전의 콘텐츠의 장면의 교체 위치를 재개 위치 정보로 하는 것을 구체적인 예로서 들 수 있다.
또한, 멀티미디어 데이터가 MPEG2 복호화 데이터인 경우, 1프레임, MPEG2-TS에 있어서의 PAT, 등, 복호하는데 불가결한 것이며, 송신 완료된 데이터 중의 마지막인 것의 선두 등으로 해도 된다. 또, 멀티미디어 데이터가 다른 복호화 데이터라도, 마찬가지이다.
(8)상기의 각 장치를 구성하는 구성 요소의 일부 또는 전부는, 1개의 시스템 LSI(Large Scale Integration:대규모 집적 회로)로 구성되어 있다고 해도 된다. 시스템 LSI는, 복수의 구성부를 1개의 칩 상에 집적하여 제조된 초다기능 LSI이며, 구체적으로는, 마이크로 프로세서, ROM, RAM 등을 포함해 구성되는 컴퓨터 시스템이다. 상기 RAM에는, 컴퓨터 프로그램이 기억되어 있다. 상기 마이크로 프로세서가, 상기 컴퓨터 프로그램에 따라서 동작함으로써, 시스템 LSI는, 그 기능을 달성한다.
(9)상기의 각 장치를 구성하는 구성 요소의 일부 또는 전부는, 각 장치에 탈착 가능한 IC카드 또는 단체의 모듈로 구성되어 있다고 해도 된다. 상기 IC카드 또는 상기 모듈은, 마이크로 프로세서, ROM, RAM, 등으로 구성되는 컴퓨터 시스템이다. 상기 IC카드 또는 상기 모듈은, 상기의 초다기능 LSI를 포함한다고 해도 된다. 마이크로 프로세서가, 컴퓨터 프로그램에 따라서 동작함으로써, 상기 IC카드 또는 상기 모듈은, 그 기능을 달성한다. 이 IC카드 또는 이 모듈은, 내탬퍼성을 갖는다고 해도 된다.
(10)본 발명의 데이터 출력 장치, 기기 제어 장치는, 상기에 나타내는 방법이라고 해도 된다. 또, 이러한 방법을 컴퓨터에 의해 실현되는 컴퓨터 프로그램이라고 해도 되고, 상기 컴퓨터 프로그램으로 이루어지는 디지털 신호이라고 해도 된다. 또, 본 발명의 데이터 출력 장치, 기기 제어 장치는, 상기 컴퓨터 프로그램 또는 상기 디지털 신호를 컴퓨터 판독 가능한 기록 매체, 예를 들면, 플렉시블 디스크, 하드 디스크, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD(Blu-ray(등록상표) Disc), 반도체 메모리 등에 기록한 것으로 해도 된다. 또, 이러한 기록 매체에 기록되어 있는 상기 컴퓨터 프로그램 또는 상기 디지털 신호이라고 해도 된다.
또, 본 발명의 데이터 출력 장치, 기기 제어 장치는, 상기 컴퓨터 프로그램 또는 상기 디지털 신호를, 전기 통신 회선, 무선 또는 유선 통신 회선, 인터넷을 대표로 하는 네트워크, 데이터 방송 등을 경유해 전송하는 것으로 해도 된다.
또, 본 발명의 데이터 출력 장치, 기기 제어 장치는, 마이크로 프로세서와 메모리를 구비한 컴퓨터 시스템으로서, 상기 메모리는, 상기 컴퓨터 프로그램을 기억하고 있고, 상기 마이크로 프로세서는, 상기 컴퓨터 프로그램에 따라서 동작한다고 해도 된다.
또, 상기 프로그램 또는 상기 디지털 신호를 상기 기록 매체에 기록해 이송함으로써, 또는 상기 프로그램 또는 상기 디지털 신호를 상기 네트워크 등을 경유해 이송함으로써, 독립한 다른 컴퓨터 시스템에 의해 실시한다고 해도 된다.
(11)상기 실시의 형태 및 상기 변형예를 각각 조합한다고 해도 된다.
(실시의 형태 2)
도 13은, 본 발명의 실시의 형태 2에 있어서의 멀티미디어 배포 시스템의 구성의 일례를 나타내는 도면이다.
도 13에 나타내는 멀티미디어 배포 시스템(1305)은, 데이터 출력 장치(1301)와, 제1의 단말(1302)과, 제2의 단말(1303)과, 네트워크(1304)를 구비한다. 데이터 출력 장치(1301), 단말(1302) 및 단말(1303)은, 네트워크(1304)에 접속되어 있고 네트워크(1304)를 통해 서로 통신 가능하다.
본 실시의 형태에 있어서의 데이터 출력 장치(1301)는, 네트워크 인터페이스와, 멀티미디어 데이터를 축적하는 축적부를 구비한, 디지털 방송을 수신하는 CATV STB(Set Top Box)이다.
데이터 출력 장치(1301)는, 수신한 디지털 방송 콘텐츠의 멀티미디어 데이터를, 축적부에 축적한다. 또, 네트워크 인터페이스를 통해, 네트워크(1304)에 접속되어 있다. 그리고, 네트워크(1304)를 통해서 송신된, 단말(1302) 및 단말(1303)로부터의 요구를 수신한다. 그리고, 요구에 따라 수신한 디지털 방송의 콘텐츠, 혹은, 축적하고 있는 콘텐츠마다의 정보나 속성 혹은 멀티미디어 데이터를, 네트워크(1304)를 통해서 단말(1302) 및 단말(1303)로 송신하는 것이다.
데이터 출력 장치(1301)는, 실행 중인 축적한 콘텐츠의 데이터 출력에 대해서, 송신처 단말로부터 중단 요구를 수신하면, 마지막에 송신한 데이터 위치의 다음의 위치와 같은 출력을 재개하는 데이터 위치를, 그 데이터의 파일명 혹은 URI(Uniform Resource Identifier)와 조합하여 재개 위치 정보로서 장치 내부에 기억함과 더불어, 그 데이터에 「출력 중단 중」이라는 속성을 부여한다.
또, 실행 중인 수신한 디지털 방송 콘텐츠의 데이터 출력에 대해서, 송신처 단말로부터 중단 요구를 수신하면, 이후의 데이터를 축적부에 축적한다.
또한, 그 멀티미디어 데이터의 속성과 URI를 작성한다. 그 속성은 「출력 중단 중」이라는 정보가 포함되어 있다. 그리고, 그 파일명 혹은 URI와 축적한 파일의 선두 위치를 재개 위치 정보로서 장치 내부에 기억한다.
또한, 데이터 출력 장치(1301)는, 단말로부터 데이터 송신 재개 요구를 수신 했을 때에, 기억해 둔 재개 위치 정보를 참조하고, 지정된 단말로, 미송신의 데이터의 선두로부터 데이터 송신을 재개하는 것이다.
단말(1302) 및 단말(1303)은, 유저의 요구에 의해, 데이터 출력 장치(1301)로 멀티미디어 데이터 혹은 콘텐츠의 속성의 송신 요구를, 네트워크(1304)를 통해서 송신한다. 그리고, 콘텐츠의 속성을 수신한 경우는, 필요에 따라서 유저에게 제시하고, 멀티미디어 데이터를 수신한 경우는, 그 데이터를 재생해 표시하는 것이다. 단말(1302) 및 단말(1303)은, 콘텐츠의 속성으로부터, 그 콘텐츠가 「출력 중단 중」인지의 판정을 행할 수 있는 것이며, 유저의 요구에 따라서, 데이터 송신 재개의 요구를 발행하는 것이다.
네트워크(1304)는, 가정 내에 시설된 홈 네트워크이며, 이더넷, 무선 LAN 등에 의해서 구성된 IP네트워크이다.
이하, 데이터 출력 장치(1301)와 단말(1302) 및 단말(1303) 사이의 통신 및 각각의 동작에 대해 설명한다.
멀티미디어 데이터 송신의 제어 정보의 통신은, RTSP를 이용해 행한다. 우선, 데이터 출력 장치(101)와 단말(102) 사이의 통신으로, 멀티미디어 데이터의 송신으로부터 중단까지를 설명하고, 계속해서, 데이터 출력 장치(1301)와 단말(1303) 사이의 통신으로, 단말(1302)로 송신 도중에 중단한 멀티미디어 데이터의 송신을 재개하는, 것을 예를 들어 설명한다.
우선, 단말(1302)로의 데이터 송신을 중단할 때까지의 과정에 있어서의 통신과 각각의 동작을 설명한다.
데이터 출력 장치(1301) 및 단말(1302)은, 각각, 네트워크(1304)에 접속된 장치를 검색하고, 각 장치가 어떠한 기능을 갖고 있는지를 취득한다. 이 통신은, UPnP DA(Device Architecture)로 정의되어 있는 방법에 의해 행할 수 있기 때문에, 상세한 설명은 생략한다.
이로 인해, 데이터 출력 장치(1301)는, 단말(1302)이 네트워크(1304)에 접속되어 있고, 네트워크(1304)로부터 멀티미디어 데이터를 수신해 재생하는 플레이어인 것을 인식할 수 있다. 또, 단말(1302)은, 데이터 출력 장치(1301)가 네트워크(1304)에 접속되어 있는 멀티미디어 서버인 것을 인식할 수 있다.
우선, 단말(1302)은, 데이터 출력 장치(1301)로 축적하고 있는 콘텐츠 일람 혹은 EPG의 취득 요구를 발행한다. 데이터 출력 장치(1301)는, 그에 따라서, 축적하고 있는 콘텐츠의 일람을 작성 혹은 수신한 EPG 데이터를 통신하는 형식으로 변환하고, 단말(1302)로 송신한다.
콘텐츠 일람이란, 각 콘텐츠에 대해, 적어도 콘텐츠의 타이틀, 콘텐츠에 액세스하기 위한 URI를 포함하고 있는 것이다. 또, 멀티미디어 데이터의 출력을 중단하고 있는 경우는, 그 속성도 포함되어 있는 것이다. 그 외, 필요에 따라서, 각 멀티미디어 데이터마다 그 속성 정보를 독출하고, 그 내용을 부가해 송신한다.
또, EPG 데이터는, 적어도 각 프로그램의 타이틀과, 각 프로그램 혹은 그것을 방송하는 채널에 액세스하기 위한 URI를 포함하고 있는 것이다. 콘텐츠 일람 혹은 EPG의 취득 요구와, 그에 대한 회신의 프로토콜, 및, 콘텐츠 일람 및 EPG의 데이터 포맷은, UPnP AV로 규정되어 있는 방법을 이용할 수 있기 때문에, 자세한 것은 생략한다. 단, 멀티미디어 데이터 출력 중단의 속성은, 독자적으로 이 포맷을 확장한 것을 이용한다.
콘텐츠 일람의 포맷은, XML에 의해서 정의되어 있기 때문에, XML Namespace를 이용함으로써, 모순 없이 포맷을 확장 가능하다. 예를 들면, 독자적인 네임 스페이스 Na를 사용한 요소 PAUSE를 각 콘텐츠의 정보로 추가하고, 이 PAUSE 요소의 내용이 「Yes」인 경우는, 출력 중단 중인 것을 나타내는 것으로 할 수 있다.
다음에, 단말(1302)은, 받은 콘텐츠 일람 혹은 EPG 데이터로부터, 콘텐츠의 타이틀 등의 정보를 유저에게 제시한다. 또한, 유저로부터 그 중의 하나를 선택한 재생 요구를 받으면, 단말(1302)은, 멀티미디어 데이터의 송신 요구를 발행한다. 예를 들면, 콘텐츠의 URI가 rtsp://192.168.0.3/AVData/0001, m2ts의 데이터를, 그 멀티미디어 데이터의 선두로부터 송신하는 요구를 발행하는 경우, RTSP의 SETUP 메시지에 이어서, 이하의 PLAY 메시지가 단말(1302)로부터 데이터 출력 장치(1301)로 송신된다.
PLAY rtsp://192.168.0.3/AVData/0001.m2ts RTSP/1.0
CSeq:2
Session:12345
Range:smtpe=0:00:00
상기 PLAY 메시지를 받은 데이터 출력 장치(1301)는, URI에 나타난 멀티미디어 데이터가 축적부에 축적된 콘텐츠인 경우는, 그 멀티미디어 데이터를 축적부로부터 독출한다. 또, URI가 채널을 나타내고 있는 경우는, 튜너에 의해서 그 채널 에 튜닝을 행한다. 그리고, 이하의 회답 메시지를 작성하고, 단말(1302)로 송신한다.
RTSP/1.0 200 OK
CSeq:2
Session:12345
Range:smtpe=0:00:00-0:55:00
RTP-Info:url=rtsp://192.168.0.3/AVData/0001.m2ts;seq=123123532;rtptime=
53265
계속해서, 데이터 출력 장치(1301)는, 축적부로부터 독출한 멀티미디어 데이터 혹은 튜너에 의해서 튜닝해 취득한 멀티미디어 데이터를, 차례차례, 단말(1302)로 송신한다. 데이터 송신은 RTP에 규정된 방법으로 행해지기 때문에, 자세한 것은 생략한다.
다음에, 단말(1302)은, 유저로부터의 지시에 의해, 재생 중단 요구를 받으면, 데이터 출력 장치(1301)로 데이터 송신 중단 요구를 발행한다. 데이터 송신 중단은 PAUSE 커멘드를 이용해 행할 수 있다. 이것은, 이하의 메시지가 단말(1302)로부터 데이터 출력 장치(1301)로 송신된다.
PAUSE rtsp://192.168.0.3/AVData/0001.m2ts RTSP/1.0
CSeq:3
Session:12345
데이터 출력 장치(1301)는, 상기의 PAUSE 커멘드를 수신하면, 데이터 송신을 정지시키고, 이하의 회답 메시지를 작성해, 단말(1302)로 송신한다.
RTSP/1.0 200 OK
CSeq:3
Session:12345
또, 데이터 출력 장치(1301)는, 송신하고 있던 콘텐츠가 축적부에 축적되어 있던 것인 경우, 그 콘텐츠의 속성 정보에, 출력 중단 중인 속성을 추가한다. 데이터 출력 장치(1301)는, 또한, 송신 완료된 데이터수로부터, 데이터 송신의 재개시의 선두가 되는 송신 재개 위치를 구하다. 이것은, 예를 들면, 선두로부터 50119 바이트의 데이터를 송신한 경우는, 선두로부터 50120 바이트째가 된다.
데이터 출력 장치(1301)는, 이 송신 재개 위치와 멀티미디어 데이터를 식별하는 것, 예를 들면 콘텐츠의 식별자를 세트로 하여, 재개 위치 정보를 작성하고, 기억한다.
또한, 본 실시의 형태에 있어서는, 송신 완료된 데이터수를 바탕으로 송신 재개 위치를 구했지만, 예를 들면, 축적부로부터의, 독출 완료된 데이터수를 바탕으로 구하는 것이어도 된다.
또, 데이터 출력 장치(1301)는, 송신하고 있던 콘텐츠가 튜너로부터 취득한 멀티미디어 데이터였던 경우, 계속하는 멀티미디어 데이터를 축적부에 차례차례 기록한다. 또한, 그 멀티미디어 데이터의 속성 정보를 작성해 축적부에 기록함과 더불어, 그 멀티미디어 데이터의 URI를 작성하고, 단말로부터 액세스 가능하게 한다. 또, 그 멀티미디어 데이터에 식별자를 발행하고, 그 식별자와 재개 위치인 그 파일 의 선두로부터 재개 위치 정보를 작성하고, 기억한다.
단말(1302)은, 유저로부터 종료의 요구를 받으면, 세션을 절단하는 TEAR DOWN이라는 커멘트 메시지를 송신하고, 데이터 출력 장치(1301)는 이것을 받아 회답 메시지를 송신하고, 통신이 종료한다. 본 실시의 형태에서는, TEARDOWN을 행해도, 상기 재개 위치 정보 및 속성 정보는 갱신하지 않는다.
또한, 보다 명확하게 후에 재개하는 중단인 것을 나타내기 위해서, PAUSE 혹은 TEARDOWN을 확장하고, 재개 위치 정보의 작성·유지 및 속성 정보의 갱신·유지를 요구하는 구성이어도 된다. 예를 들면, 독자 확장 헤더인 X-Keep-Pause-St atus를 이용해, 그 값이 「Yes」인 경우에 한정하고, 재개 위치 정보를 작성·유지 및 속성 정보를 갱신·유지하는 것으로 하면, 상기의 단말(1302)로부터 데이터 출력 장치(1301)로 보내지는 PAUSE 메시지는 이하와 같이 된다.
PAUSE rtsp://192.168.0.3/AVData/0001.m2ts RTSP/1.0
CSeq:3
Session:12345
X-Keep-Pause-Status:Yes
이 경우, 데이터 출력 장치(1301)는, 수신한 PAUSE 메시지에, X-Keep- Pause-Status 헤더가 있고, 또한 그 값이 「Yes」이므로, 재개 위치 정보를 작성해 유지하고, 또, 속성 정보를 갱신해 유지한다. X-Keep-Pause-Status 헤더가 없거나, 있어도 값이 「Yes」이외인 경우는, 데이터 출력 장치(1301)는, 재개 위치 정보를 작성하지 않고, 또, 속성 정보를 갱신하지 않는다.
다음에, 단말(1303)과의 통신에 있어서, 상기의 중단한 데이터 송신을 재개하는 과정의 통신 및 데이터 출력 장치(1301)와 단말(1303)의 동작을 설명한다.
우선, 데이터 출력 장치(1301)와 단말(1303)에 있어서의, 네트워크에 접속된 장치의 검색 및 단말(1303)에 의한 콘텐츠 일람 혹은 EPG의 취득에 관해서는, 상기와 같기 때문에, 설명을 생략한다.
단말(1303)은, 데이터 출력 장치(1301)로부터 받은 콘텐츠 일람 혹은 EPG를 유저에게 제시한다. 콘텐츠 일람 제시시에, 단말(1303)은, 데이터 출력 중단 중인 콘텐츠를 판정하고, 그 정보도 함께 제시한다. 데이터 출력 중단 중인 제시는, 예를 들면, 콘텐츠의 타이틀 부분에 마크를 붙이는, 콘텐츠의 타이틀을 다른 색으로 표시하는, 별도 중단 중인 일람을 만들어 제시하는, 등의 방법에 의해 행할 수 있다.
단말(1303)은, 유저가 「데이터 출력 중단 중」인 콘텐츠 재생의 재개 요구를 받으면, 데이터 출력 장치(1301)로, 중단한 데이터 송신의 재개 요구를 발행한다. 이 요구는, RTSP의 PLAY 메시지에, 독자 확장 헤더인 X-Restart를 이용하고, 그 값을 「Yes」로 함으로써 행하는 것으로 한다. 이 경우, 단말(1303)로부터 이하의 메시지가 데이터 출력 장치(1301)로 송신된다.
PLAY rtsp://192.168.0.3/AVData/0001.m2ts RTSP/1.0
CSeq:2
Session:54321
X-Restart:Yes
데이터 출력 장치(1301)에서는, 우선, PLAY 메시지로 보내져 온 URI의 멀티미디어 데이터의 재개 위치 정보를, 기억하고 있는 재개 위치 정보로부터 검색한다. 데이터 출력 장치는, 재개 위치 정보로부터, 송신을 재개하는 데이터 위치를 독출하고, 축적부로부터 그 멀티미디어 데이터를 읽어들인다.
데이터 출력 장치(1301)는, 계속해서, 이하의 회답 메시지를 작성하고, 단말(1303)로 송신한다. 또한, 재개 위치는, 그 멀티미디어 데이터의 선두로부터 8분째로 하고 있다.
RTSP/1.0 200 OK
CSeq:2
Session:54321
Range:smtpe=0:08:00-0:55:00
RTP-lnfo:url=rtsp://192.168.0.3/AVData/0001.m2ts;seq=123073412;rtptime=
52865
계속해서, 데이터 출력 장치(1301)는, PLAY 메시지가 단말(1303)로부터 보내져 온 것으로부터, 데이터의 송신처를 단말(1303)로 판정하고, 독출한 데이터를, 차례차례, 단말(1303)에 송신한다. 또, 데이터 출력 장치(1301)는, 해당하는 재개 위치 정보를 장치 내부로부터 삭제함과 더불어, 그 멀티미디어 데이터의 속성 정보로부터, 「출력 중단 중」인 속성을 삭제하고, 속성 정보를 갱신한다.
또한, 본 실시의 형태의 경우, 데이터 출력 장치(1301)는, RTSP 메시지가 보내져 온 단말을, 송신처 단말로 판정하는 것으로 했기 때문에, 단말(1303)로부터 송신처 단말인 출력처의 명시적인 지정을 생략하고 있다. 이 경우, 출력처는 수신 패킷이나 소켓 인터페이스로부터 얻을 수 있다. 또, UPnP AV에 규정되어 있는 방법, 혹은, PLAY 메시지에, 독자 확장을 추가하는 등에 의해, 송신처를 지정하는 구성이어도 된다.
이상과 같이, 본 발명의 데이터 출력 장치(1301), 단말(1302), 단말(1303), 및 멀티미디어 배포 시스템(1305)에 있어서는, 예를 들면 단말(1302)에서 수신 중이었던 데이터의 송신을 중단해도, 다른 단말(1303)에 있어서, 적확하게 데이터 통신을 재개하는 것이 가능해진다.
이하, 본 발명의 멀티미디어 배포 시스템(1305)을 구성하는, 데이터 출력 장치(1301), 단말(1302) 및 단말(1303)에 대해서, 더욱 상세하게 설명한다. 여기에서는, 단말(1302)로 데이터 통신 중에 데이터 송신을 중단하고, 단말(1303)로 중단한 데이터 송신을 재개하는 경우를 예로 설명하지만, 다른 경우도 마찬가지이다.
또, RTSP 서버는 정해진 포트 번호로 대기하고 있는 것으로 한다. 이 포트 번호는, IANA(Internet Assigned Numbers Authority)로 결정된 554번을 이용해도 되고, 유저가 데이터 출력 장치(1301), 단말(1302) 및 단말(1303)로 설정한 것이어도 된다. 또, 후술하는 메소드에 포트 번호를 지정하는 인수를 추가하는 구성이어도 된다.
우선, 데이터 출력 장치(1301)에 대해 설명한다.
도 14는, 본 발명의 실시의 형태 2에 있어서의 데이터 출력 장치(1301)의 구성의 일례를 나타내는 블록도이다.
본 도면에 나타내는 데이터 출력 장치(1301)는, 입력부(1401)와, 제1 메모리(1402)와, 제2 메모리(1403)와, 수신부(1404)와, 다중 분리부(1405)와, 디스크램블러(1406)와, TS디코더(1407)와, 영상 출력부(1408)와, 음성 출력부(1409)와, TS멀티플렉서(410)와, 네트워크부(1411)와, CPU(1412)를 구비한다.
입력부(201)는, 프런트 패널이나 리모콘 수광기 등으로 구성되고, 유저로부터의 채널 선택 등의 지시를 받는다.
도 15는, 프런트 패널로 실시의 형태 2에 관한 입력부(1401)를 구성한 경우의 외관의 일례를 나타내는 도면이다.
본 도면에 나타내는 프런트 패널(1500)은, 윗쪽 커서 버튼(1501), 아래쪽 커서 버튼(1502), 왼쪽 커서 버튼(1503), 오른쪽 커서 버튼(1504), OK버튼(1505), 취소 버튼(1506), EPG 버튼(1507), 및, 시어터 버튼(1508)의 8개의 버튼을 구비한다. 유저가 버튼을 누르면, 눌려진 버튼의 식별자가, CPU(1412)에 통지된다.
제1 메모리(1402)는, RAM 등으로 구성되고, CPU(142)가 일시적으로 데이터를 보존할 때에 사용된다.
제2 메모리(1403)는, 플래쉬 메모리, 하드 디스크 등으로 전원이 정지해도 정보를 유지 가능한 디바이스로 구성되고, CPU(1412)가 실행하는 프로그램을 보존한다. 제2 메모리는, SD메모리 카드 등의 분리 가능한 기억 디바이스를 이용하고 있어도 된다.
수신부(1404)는, CATV국으로부터의 케이블에 접속되어 방송파를 수신하고, CPU(1412)로부터 지정된 주파수에 튜닝하고, MPEG 트랜스포트 스트림을 추출하여, 다중 분리부(1405)에 넘겨 준다.
다중 분리부(1405)는, 수신부(1404)로부터 MPEG 트랜스포트 스트림을 받고, CPU(1412)로부터 지정된 정보를 추출하고 CPU(1412)에 넘겨 준다. 또 MPEG 트랜스포트 스트림을 그대로 디스크램블러(1406)에 넘겨 준다.
디스크램블러(1406)는, 다중 분리부(1405)로부터 부여된 스크럼블되어 있는 MPEG 트랜스포트 스트림을 디스크램블(=복호)하고, TS디코더(1407)에 넘겨 준다. 디스크램블러(1406)는, 데이터 출력 장치(1301)에 내장된 모듈이어도 되고, 북미 케이블 수신기로 도입되어 있는 CableCARD(TM)여도 실시 가능하다. CableCARD의 사양은 미국 CableLabs가 책정한 CableCARD Interface Specification에 기재되어 있으며, 여기에서는 설명을 생략한다.
TS디코더(1407)는, CPU(1412)로부터 음성 데이터, 영상 데이터, PSI/SI정보 등의 섹션 데이터의 식별자를 받는다. 또한, 디스크램블러(1406)로부터 받은 디스크램블된 스트림으로부터, 받은 음성 데이터, 영상 데이터, PSI/SI 정보 등의 섹션 데이터의 식별자에 대응하는 데이터를 추출하는, 추출한 영상 데이터를 영상 출력부(1408)에, 음성 데이터를 음성 출력부(1409)에 넘겨 준다. 또, 그 양쪽과, 섹션 데이터를, TS멀티플렉서(1410)에 넘겨 준다.
영상 출력부(1408)는 영상 출력 단자를 포함하고, 받은 영상 데이터를 단자에 대응한 영상 데이터로 변환해 출력한다. 단자의 예로서는, 콤퍼짓 케이블 단자 등이 있다.
음성 출력부(1409)는 음성 출력 단자를 포함하고, 받은 음성 데이터를 단자 에 대응한 음성 데이터로 변환해 출력한다. 단자의 예로서는, 이어 폰 단자나, 콤퍼짓 케이블 단자 등이 있다.
TS멀티플렉서(1410)는, 받은 영상 데이터, 음성 데이터, 섹션 데이터로부터 MPEG2 트랜스포트 스트림을 구성하고, 그 MPEG2 트랜스포트 스트림을 네트워크부(1411)에 넘겨 준다. PSI/SI정보는 필요에 따라서 고쳐 쓸 수 있다.
네트워크부(1411)는, 네트워크 인터페이스를 포함하고, CPU(1412)로부터 받은 데이터를, 네트워크 인터페이스가 접속된 네트워크의 물리 미디어에 따른 신호로 변환해 출력한다. 또, 네트워크 인터페이스로부터 신호를 수신하고, IP네트워크로 규정된 패킷으로 변환하여, CPU(1412)로 넘겨 준다.
CPU(1412)는, 제2 메모리(1403)가 기억하는 프로그램을 실행함으로써, 수신부(1404)와, 다중 분리부(1405)와, 디스크램블러(1406)와, TS디코더(1407)와, TS멀티플렉서(1410)와, 네트워크부(1411)를 제어한다.
도 16은, 본 발명의 실시의 형태 2에 있어서의 데이터 출력 장치(1301)가 유지하고, 실행하는 프로그램의 구성의 일례를 나타내는 도면이다. 즉, 본 도면은, 데이터 출력 장치(1301)의 제2 메모리(1403)에 기억되고, CPU(1412)에 실행되는 프로그램의 구성의 일례를 나타낸다.
프로그램(1600)은, 복수의 서브 프로그램으로 구성되고, 구체적으로는, OS(1601)와, EPG(1602)와, JavaVM(1603)과, 서비스 매니저(1604)와, Java 라이브러리(1605)로 구성된다.
OS(1601)는, 데이터 출력 장치(1301)의 전원이 투입되면, CPU(1412)가 기동 하는 서브 프로그램이다. OS는, 오퍼레이팅 시스템의 약어이며, Linux(등록상표) 등이 일례이다.
OS(1601)는, 다른 서브 프로그램을 평행하게 실행하는 커넬(1601a) 및 라이브러리(1601b)로 구성되는 공지의 기술의 총칭이며, 상세한 설명은 생략한다.
본 실시의 형태에 있어서는, OS(1601)의 커넬(1601a)은, EPG(1602)와 JavaVM(1603)을 서브 프로그램으로서 실행한다. 또, 라이브러리(1601b)는, 이들 서브 프로그램에 대해서, 데이터 출력 장치(1301)가 구비하는 각부를 제어하기 위한 복수의 기능을 제공한다.
본 실시의 형태의 라이브러리(1601b)는, 기능으로서 예를 들면, 튜너(1601b1), 한정 해제(1601b2), AV재생(1601b3), NET(1601b4)를 포함한다.
튜너(1601b1)는, 다른 서브 프로그램이나 Java 라이브러리(1605)의 Tuner(1605c)로부터 주파수를 포함하는 튜닝 정보를 받고, 수신부(1404)에 넘겨 준다.
수신부(1404)는 부여된 튜닝 정보에 기초하여 복조 처리를 행하고, 복조한 데이터를 다중 분리부(1405)에 인도할 수 있다. 이 결과, 다른 서브 프로그램 및 Java 라이브러리(1605)의 Tuner(1605c)는 라이브러리(1601b)를 통해 수신부(1404)를 제어할 수 있다.
한정 해제(1601b2)는, 다른 서브 프로그램이나 Java 라이브러리(1605)의 CA(1605d)로부터 정보를 받고, 디스크램블러(1406)에 넘겨 준다.
AV재생(1601b3)은, 다른 서브 프로그램이나 Java 라이브러리(1605)의 JMF(1605a)로부터, 음성의 패킷 ID와 영상의 패킷 ID를 받는다. 받은 음성의 패킷 ID와 영상의 패킷 ID를, TS디코더(1407)에 부여한다.
이 결과, TS디코더(1407)는 부여된 패킷 ID에 의거하여, 필터링을 행하고, 영상·음성의 재생을 실현한다.
NET(1601b4)는, 다른 서브 프로그램이나 Java 라이브러리(1605)의 네트워크 라이브러리(1605e)로부터 받은 데이터를, IP네트워크로 규정되는 어플리케이션층보다 아래의 프로토콜의 패킷을 작성한다. 어플리케이션층보다 아래의 프로토콜이란, 예를 들면 TCP 패킷, UDP 패킷, IP 패킷 등이다.
이것을 네트워크부(1411)에 넘겨 줌으로써, 네트워크(1304)를 통해 다른 기기에 메시지 및 데이터를 송신한다. 또, 네트워크(1304)를 통해 다른 기기로부터 메시지를 수신했을 때에, 다른 서브 프로그램이나 Java 라이브러리(1605)의 네트워크 라이브러리(1605e)에, 어플리케이션층의 프로토콜의 패킷으로 변환해 넘겨 준다. 어플리케이션층의 프로토콜이란, 예를 들면, HTTP(Hypertext Transfer Protocol)나 RTP 등이다.
EPG(1602)는, 유저에게 프로그램 일람을 표시 및, 유저로부터의 입력을 받는 프로그램 표시부(1602a)와, 채널 선국을 행하는 재생부(1602b)로 구성된다.
여기서, EPG는 Electric Program Guide의 약어이다. EPG(1602)는, 데이터 출력 장치(1301)의 전원이 투입되면, 커넬(1601a)에 의해서 기동된다. 기동된 EPG(1602)의 내부에서는, 프로그램 표시부(1602a)와 재생부(1602b)가 동시에 기동된다.
프로그램 표시부(1602a)는 기동되면, 데이터 출력 장치(1301)의 입력부(1401)를 통해, 유저로부터의 입력을 기다린다.
여기서, 입력부(1401)가 도 15에서 나타내어지는 프런트 패널로 구성되어 있는 경우, 유저가, 입력부(1401)의 EPG 버튼(1507)을 누르면, EPG 버튼의 식별자가 CPU(1412)에 통지된다. CPU(1412) 상에서 동작하는 서브 프로그램인 EPG(402)의 프로그램 표시부(402a)는, 이 식별자를 받고, 프로그램 정보 표시 데이터를 작성하고, 도시하지 않은 모니터 출력부에 의해 모니터에 출력한다. 모니터는, 데이터 출력 장치(1301)가 구비하는 것이어도 되고, 데이터 출력 장치(1301)와 콤퍼짓 케이블이나 HDMI 케이블 등으로 접속된 텔레비젼이어도 된다. 모니터는, 수신한 프로그램 정보 표시 데이터를 표시한다.
도 17(a) 및 (b)는, 각각, 본 발명의 실시의 형태 2에 관한 모니터에 표시된 프로그램표의 예를 나타내는 도면이다.
도 17(a)를 참조하여, 모니터에 표시된 프로그램표(1710)에는, 격자모양으로 프로그램 정보가 표시되어 있다. 열 1701에는, 시각 정보가 표시되어 있다. 열 1702에는, 채널명 「채널 1」과, 열 1701의 시각에 대응하는 시간대에 방영되는 프로그램이 표시되어 있다.
「채널 1」에서는, 9:00~10:30에 프로그램 「뉴스 9」가 방영되고, 10:30~12:00은 「영화 AAA」가 방영되는 것을 나타낸다. 열 1703도 열 1702와 같이, 채널명 「채널 2」와, 열 1701의 시각에 대응하는 시간대에 방영되는 프로그램이 표시되어 있다. 9:00~11:00에 프로그램 「영화 BBB」가 방영되고, 11:00~12:00 은 「뉴스 11」이 방영된다.
커서(530)는, 프런트 패널(300)의 왼쪽 커서(303)와 오른쪽 커서(304)를 누르면 이동한다. 도 17(a)의 상태로, 오른쪽 커서(304)를 누르면, 커서(530)는 오른쪽으로 이동하고, 도 17(b)와 같이 된다. 또, 도 17(b)의 상태로, 왼쪽 커서(303)를 누르면, 커서(530)는 왼쪽으로 이동하고, 도 17(a)와 같이 된다.
도 17(a)의 상태로, 프런트 패널(1500)의 OK버튼(1505)이 압하되면, 프로그램 표시부(1602a)는, 「채널 1」의 식별자를 재생부(1602b)에 통지한다. 도 17(b)의 상태로, 프런트 패널(1500)의 OK버튼(1505)이 눌려지면, 프로그램 표시부(1602a)는, 「채널 2」의 식별자를 재생부(1602b)에 통지한다.
또, 프로그램 표시부(1602a)는, 표시하는 프로그램 정보를, 다중 분리부(1405)를 통해 정기적으로, 제2 메모리(1403)에 기억해 둔다. 일반적으로, 방송국으로부터의 프로그램 정보의 취득은 시간이 걸린다. 프런트 패널(1500)의 EPG 버튼(1507)이 눌려졌을 때, 제2 메모리(1403)에 미리 보존된 프로그램 정보를 표시함으로써, 재빠르게 프로그램표를 표시할 수 있다.
도 18은, 본 발명의 실시의 형태 2에 관한 제2 메모리(1403)에 기억되어 있는 프로그램 정보의 일례를 나타내는 도면이다. 프로그램 정보는 표 형식으로 저장되어 있다.
열 1801은 채널의 식별자이다. 열 1802는 프로그램명이다. 열 1803은 프로그램의 방송 개시 시간, 열 1804는 방송 종료시간이다. 열 1805는 프로그램의 음성 종별을 나타내고 있고, 모노럴 음성, 스테레오 음성, 5.1채널 음성을 각각 「모 너럴」, 「스테레오」, 「5.1」이라고 표기하고 있다. 열 1806은 프로그램의 종별을 나타내고 있다. 통상 프로그램은 공란이며, 「영화」는 영화, 「스포」는 스포츠 프로그램을 나타낸다.
행 1811~1814의 각 행은, 각각 하나의 프로그램 정보를 나타낸다. 이 예에서는, 하나의 프로그램 정보는, 채널의 식별자, 프로그램명, 방송 개시 시간, 방송 종료 시간, 프로그램의 음성 종별의 세트가 된다.
예를 들면, 행 1811은 채널 식별자가 「1」, 프로그램명이 「뉴스 9」, 방송 개시 시간이 「9:00」, 방송 종료 시간이 「10:30」, 음성 종별이 「모노널」, 프로그램의 종별은 「통상」을 포함하는 세트로 되어 있다.
재생부(1602b)는, 받은 채널의 식별자를 이용해, 채널을 재생한다. 즉 채널을 구성하는 영상과 음성을 재생한다. 채널의 식별자와 채널의 관계는, 채널 정보로서, 제2 메모리(1403)에 미리 저장되어 있다.
도 19는, 본 발명의 실시의 형태 2에 관한 제2 메모리(1403)에 저장되어 있는 채널 정보의 일례를 나타내는 도면이다.
채널 정보는 표 형식으로 저장되어 있다. 열 1901은, 채널의 식별자이다. 열 1902는, 채널명이다. 열 1903은 튜닝 정보이다. 여기서, 튜닝 정보는 주파수나 전송 레이트, 복호화율 등을 포함하고, 수신부(1404)에 부여하는 값이다. 열 1904는 프로그램 넘버이다.
프로그램 넘버란, MPEG2 규격으로 규정되어 있는 PMT를 식별하기 위한 번호이다. PMT에 관해서는, 후술한다.
행 1911~1914의 각 행은, 각 채널의 식별자, 채널명, 튜닝 정보의 세트가 된다. 행 1911은 식별자가 「1」, 채널명이 「채널 1」, 튜닝 정보에 주파수 「150MHz」, 프로그램 넘버가 「101」을 포함하는 세트로 되어 있다. 재생부(1602b)는, 채널의 재생을 행하기 위해, 받은 채널의 식별자를 그대로 서비스 매니저(1604)에 넘겨 준다.
또, 재생부(1602b)는, 재생 중에, 유저가 프런트 패널(1500)의 윗쪽 커서(1501)와, 아래쪽 커서(1502)를 누르면, 입력부(1401)로부터 CPU(1412)를 통하여, 눌려진 통지를 받고, 재생하고 있는 채널을 변경한다.
윗쪽 커서(1501)를 누르면, 현재 재생 중인 채널보다 하나 작은 채널 식별자를 갖는 채널을 재생하고, 또 아래쪽 커서(1502)를 누르면, 현재 재생 중인 채널보다 하나 큰 채널 식별자를 갖는 채널을 재생한다.
우선, 재생부(1602b)는, 제2 메모리(203)에 현재 재생 중인 채널의 식별자를 기억한다.
도 20(a)(b) 및 (c)는, 각각, 본 발명의 실시의 형태 2에 관한 제2 메모리(1403)에 저장되어 있는 채널의 식별자의 예를 나타내는 도면이다.
도 20(a)에서는 식별자 「3」이 기억되어 있고, 도 19를 참조해, 채널명 「TV3」인 채널이 재생 중인 것을 나타낸다.
도 20(a) 상태로, 유저가 윗쪽 커서(301)를 누르면 재생부(402b)는, 도 19의 채널 정보를 참조하고, 표 중에서 현재 재생 중인 채널보다 하나 작은 식별자를 갖는 채널인 채널명 「채널 2」의 채널로 재생을 전환하기 위해, 서비스 매니 저(1604)에 채널명 「채널 2」의 식별자 「2」를 넘겨 준다. 동시에, 제2 메모리(1403)에 기억되어 있는 채널 식별자 「2」로 고쳐 쓴다.
도 20(b)은, 채널 식별자가 고쳐 써진 상태를 나타낸다. 또, 도 20(a)의 상태로, 유저가 아래쪽 커서(1502)를 누르면 재생부(1602b)는, 도 19의 채널 정보를 참조하여, 표 중에서 현재 재생 중인 채널보다 하나 큰 식별자를 갖는 채널인 채널명 「TV Japan」의 채널로 재생을 전환하기 위해, 서비스 매니저(1604)에 채널명 「TV Japan」의 식별자 「4」를 넘겨 준다. 동시에, 제2 메모리(1403)에 기억되어 있는 채널 식별자 「4」로 고쳐 쓴다.
도 20(c)은, 채널 식별자가 고쳐 써진 상태를 나타낸다. 채널 식별자는, 제2 메모리(1403)에 기억되어 있으므로, 데이터 출력 장치(1301)의 전원이 끊겼을 때도 보존되어 있다.
또한 재생부(1602b)는, 데이터 출력 장치(1301)의 전원이 투입되었을 때에, 기동되면, 제2 메모리(1403)에 기억되어 있는 채널 식별자를 독출한다. 그리고, 그 채널 식별자를 서비스 매니저에 넘겨 준다. 이로 인해, 데이터 출력 장치(1301)는, 전원 투입시에 전회의 가동시에 재생되고 있던 마지막 채널의 재생을 개시할 수 있다.
JavaVM(1603)는, Java(TM) 언어로 기술된 프로그램을 순서대로 해석해 실행하는 Java 버추얼 머신이다. Java 언어로 기술된 프로그램은 바이트 코드로 불리는, 하드웨어에 의존하지 않는 중간 코드에 컴파일된다. Java 버추얼 머신은, 이 바이트 코드를 실행하는 인터프리터이다.
또, 일부의 Java 버추얼 머신은, 바이트 코드를 CPU(1412)가 이해 가능한 실행 형식으로 번역하고 나서, CPU(1412)에 넘겨 주고, 실행하는 것도 행한다.
JavaVM(1603)는, 커넬(1601a)에 실행하는 Java 프로그램이 지정되어 기동된다. 본 실시의 형태에서는, 커넬(1601a)은, 실행하는 Java 프로그램으로서 서비스 매니저(1604)를 지정한다.
Java 언어의 자세한 것은, 서적 「Java Language Specification(ISBN 0-201-63451-1)」등의 많은 서적에서 해설되어 있다. 여기에서는, 그 상세를 생략한다.
또, Java VM 자체의 상세한 동작 등은, 「Java Virtual Machine Specification(ISBN 0-201-63451-X)」등의 많은 서적에서 해설되어 있다. 여기에서는, 그 상세를 생략한다.
서비스 매니저(1604)는, Java 언어로 쓰여진 Java 프로그램이며, Java VM(1603)에 의해서 순서대로 실행된다. 서비스 매니저(1604)는, JNI(Java Native Interface)를 통해, Java 언어로 기술되어 있지 않은 다른 서브 프로그램을 호출하거나, 또는, 호출되거나 하는 것이 가능하다. JNI에 관해서도, 서적 「Java Native Interface」 등의 많은 서적에서 해설되어 있다. 여기에서는, 그 상세를 생략한다.
우선, 디지털 방송을 수신하고, 수신한 멀티미디어 데이터를 재생하는 경우의 처리에 대해 설명한다.
서비스 매니저(1604)는, JNI를 통해, 재생부(1602b)로부터 채널의 식별자를 받는다.
서비스 매니저(1604)는, 최초로 Java 라이브러리(1605) 중에 있는 Tuner(1605c)에, 채널의 식별자를 넘겨 주고, 튜닝을 의뢰한다. Tuner(1605c)는, 제2 메모리(1403)가 기억하는 채널 정보를 참조하여, 튜닝 정보를 획득한다.
지금, 서비스 매니저(1604)가 채널의 식별자 「2」를 Tuner(1605c)에 넘겨 주면, Tuner(1605c)는, 도 19의 행 1912를 참조하여, 대응하는 튜닝 정보 「156MHz,」를 획득한다. Tuner(1605c)는, OS(1601)의 라이브러리(1601b)의 튜너(1601b1)를 통해, 수신부(1404)에 튜닝 정보를 넘겨 준다.
수신부(1404)는 부여된 튜닝 정보에 따라서 방송국으로부터 송신되어 온 신호를 복조하고, 다중 분리부(1405)에 넘겨 준다.
다음에 서비스 매니저(1604)는, Java 라이브러리(1605) 내에 있는 CA(1605d)에 디스크램블을 의뢰한다. CA(1605d)는, OS(1601)의 라이브러리(1601b)의 한정 해제(1601b2)를 통해 복호에 필요한 정보를 디스크램블러(1406)에 준다.
디스크램블러(1406)는, 부여된 정보를 바탕으로, 수신부(1404)로부터 부여된 신호를 복호하고, TS디코더(1407)에 넘겨 준다.
서비스 매니저(1604)는, Java 라이브러리(1605) 중에 있는 JMF(1605a)에 채널의 식별자를 부여하고, 영상·음성의 재생을 의뢰한다.
우선, 최초로 JMF(1605a)는, 재생해야 할 영상과 음성을 특정하기 위한 패킷 ID를 PAT, PMT로부터 취득한다. PAT나 PMT는 MPEG2 규격으로 규정되어 있는, MPEG2 트랜스포트 스트림 내의 프로그램 구성을 표현하는 테이블이며, MPEG2 트랜스포트 스트림에 포함되는 패킷의 페이로드에 매입(埋入)되어, 음성이나 영상과 더 불어 송신되는 것이다. 자세한 것은 규격서를 참조하기 바란다. 여기에서는, 개략만 설명한다.
PAT는, Program Association Table의 약어로, 패킷 ID 「0」의 패킷에 저장되어 송신되고 있다. JMF(1605a)는, PAT를 취득하기 위해, OS(1601)의 라이브러리(1601b)를 통해, 다중 분리부(1405)에 패킷 ID 「0」을 지정한다. 다중 분리부(1405)가 패킷 ID 「0」으로 필터링을 행하고, CPU(1412)에 넘겨 줌으로써 IMF(1605a)는, PAT의 패킷을 수집한다.
도 21은, 수집한 PAT의 정보의 일례를 모식적으로 나타내는 도면이다.
열 2101은, 프로그램 넘버이다. 열 2102는, 패킷 ID이다. 열 2102의 패킷 ID는 PMT를 취득하기 위해서 이용된다.
행 2111~1213은, 채널의 프로그램 넘버와 대응하는 패킷 ID의 세트이다. 여기에서는, 세 개의 채널이 정의되어 있다. 행 2111은 프로그램 넘버 「101」과 패킷 ID 「501」의 세트가 정의되어 있다.
지금, JMF(1605a)에 부여된 채널의 식별자를 「2」로 하면, JMF(1605a)는, 도 21의 행 2112를 참조하여, 대응하는 프로그램 넘버 「102」를 획득하고, 다음에, 도 21의 PAT의 행 2112를 참조하여, 프로그램 넘버 「102」에 대응하는 패킷 ID 「502」를 획득한다.
PMT는, Program Map Table의 약어로, PAT로 규정된 패킷 ID의 패킷에 저장되어 송신되어 있다. JMF(1605a)는, PMT를 취득하기 위해, OS(1601)의 라이브러리(1601b)를 통해, 다중 분리집부(1405)에 패킷 ID를 지정한다. 여기서, 지정하는 패킷 ID는 「502」로 한다. 다중 분리집부(1405)가 패킷 ID 「502」로 필터링을 행하고, CPU(1412)에 넘겨 줌으로써 IMF(1605a)는, PMT의 패킷을 수집한다.
도 22는, 수집한 PMT의 정보의 일례를 모식적으로 나타내는 도면이다.
열 1201은, 스트림 종별이며. 열 2202는, 패킷 ID이다. 열 2202로 지정되는 패킷 ID의 패킷에는, 스트림 종별로 지정된 정보가 페이로드에 저장되어 송신되고 있다. 열 2203은 보충 정보이다.
행 2211~2214는 엘러멘터리 스트림으로 불리는, 패킷 ID와 송신하고 있는 정보의 종별의 세트이다.
행 2211은, 스트림 종별 「음성」과 패킷 ID 「5011」의 세트이며, 패킷 ID 「5011」의 페이로드에는 음성이 저장되어 있는 것을 나타낸다. JMF(1605a)는, PMT로부터 재생하는 영상과 음성의 패킷 ID를 획득한다. 도 22를 참조하여, JMF(1605a)는, 행 2211으로부터 음성의 패킷 ID 「5011」을, 행 2212로부터 영상의 패킷 ID 「5012」를 획득한다.
다음에, JMF(1605a)는, OS(1601)의 라이브러리(1601b)의 AV재생(1601b3)에 획득한 음성의 패킷 ID와 영상의 패킷 ID를 넘겨 준다. 이에 따라, AV재생(1601b3)은, 받은 음성의 패킷 ID와 영상의 패킷 ID를, TS디코더(1407)에 부여한다. TS디코더(1407)는 부여된 패킷 ID로 필터링을 행한다.
여기에서는 패킷 ID 「5011」의 패킷을 음성 출력부(1409)에, 패킷 ID 「5012」의 패킷을 영상 출력부(1408)에, 각각 넘겨 준다.
음성 출력부(1409)는, 부여된 패킷을 적절히 변환해(예를 들면 디지털-아날 로그 변환) 출력한다.
영상 출력부(1408)는, 부여된 패킷을 적절히 변환해(예를 들면 디지털-아날로그 변환) 출력한다.
마지막으로 서비스 매니저(1604)는, Java 라이브러리(1605) 내에 있는 AM(1605b)에 채널의 식별자를 부여하고, 데이터 방송 재생을 의뢰한다.
여기서, 데이터 방송 재생이란, MPEG2 트랜스포트 스트림에 포함되는 Java 프로그램을 추출하고, JavaVM(1603)에 실행시키는 것이다. MPEG2 트랜스포트 스트림에 Java 프로그램을 매입하는 방법은, MPEG 규격서 ISO/IEC13818-6에 기술된 DSMCC라고 하는 방식을 이용한다. 여기에서는 DSMCC의 상세한 설명은 생략한다. DSMCC 방식은, MPEG2 트랜스포트 스트림의 패킷 중에, 컴퓨터로 사용되고 있는 디렉토리나 파일로 구성되는 파일 시스템을 엔코드하는 방법을 규정하고 있다.
또, 실행하는 Java 프로그램의 정보는 AIT로 불리는 형식으로, MPEG2 트랜스포트 스트림의 패킷 중에 매입되어 송신되고 있다. AIT는, DVB-MHP 규격(정식으로는, ETSI TS 101 812 DVB-MHP 사양 V1.0.2)의 10장에 정의되어 있는, Application Information Table의 약어이다.
AM(1605b)은, 우선, AIT를 획득하기 위해, JMF(1605a)와 같이 PAT, PMT를 취득하고, AIT가 저장되어 있는 패킷의 패킷 ID를 획득한다.
지금, 부여된 채널의 식별자가 「2」이고, 도 21의 PAT, 도 22의 PMT가 송신되어 있으면, JMF(1605a)와 같은 순서로, 도 22의 PMT를 획득한다. AM(1605b)은, PMT로부터 스트림 종별이 「데이터」로 보충 정보로서 「AIT」를 갖는 엘러멘터리 스트림으로부터 패킷 ID를 추출한다. 도 22를 참조하여, 행 1013의 엘러멘터리 스트림이 해당하고, 패킷 ID 「5013」을 획득한다.
AM(1605b)는, OS(1601)의 라이브러리(1601b)를 통해 다중 분리부(1405)에 AIT의 패킷 ID를 부여한다. 다중 분리부(1405)는, 부여된 패킷 ID로 필터링을 행하고, CPU(1412)에 넘겨 준다. 이 결과, AM(1605b)는, AIT의 패킷을 수집할 수 있다.
도 23은, 수집한 AIT의 정보의 일례를 모식적으로 나타내는 도면이다.
열 2301은 Java 프로그램의 식별자이다.
열 2302는 Java 프로그램의 제어 정보이다. 제어 정보에는 「autostart」「present」「kill」등이 있고, 「autostart」는 즉시에 데이터 출력 장치(101)가 이 프로그램을 자동적으로 실행하는 것을 의미하고, 「present」는 자동 실행하지 않는 것을 의미하고, 「kill」은 프로그램을 정지하는 것을 의미한다.
열 2303은, DSMCC 방식으로 Java 프로그램을 포함하고 있는 패킷 ID를 추출하기 위한 DSMCC 식별자이다.
열 2304는 Java 프로그램의 프로그램명이다.
행 2311과 2312은, Java 프로그램의 정보의 세트이다. 행 2311으로 정의되는 Java 프로그램은, 식별자 「301」, 제어 정보 「autostart」, DSMCC 식별자 「1」, 프로그램명 「a/TopXlet」의 세트이다. 행 2312로 정의되는 Java 프로그램은, 식별자 「302」, 제어 정보 「present」, DSMCC 식별자 「1」, 프로그램명 「b/GameXlet」의 세트이다.
여기서 두개의 Java 프로그램은 같은 DSMCC 식별자를 갖지만, 이것은 하나의 DSMCC 방식으로 복호화된 파일 시스템 내에 두개의 Java 프로그램이 포함되어 있는 것을 나타낸다. 여기에서는, Java 프로그램에 대해서 4개의 정보 밖에 규정하지 않지만, 실제로는 보다 많은 정보가 정의된다. 자세한 것은 DVB-MHP 규격을 참조하기 바란다.
AM(1605b)는, AIT 중에서 「autostart」의 Java 프로그램을 찾아내고, 대응하는 DSMCC 식별자 및 Java 프로그램명을 추출한다. 도 23을 참조하여, AM(1605b)는 행 2311의 Java 프로그램을 추출하고, DSMCC 식별자 「1」 및 Java 프로그램명 「a/TopXlet」을 획득한다.
다음에 AM(1605b)은, AIT로부터 취득한 DSMCC 식별자를 이용하여, Java 프로그램을 DSMCC 방식으로 저장하고 있는 패킷의 패킷 ID를 PMT로부터 획득한다. 구체적으로는, PMT 중에서 스트림 종별이 「데이터」로, 보충 정보의 DSMCC 식별자가 합치하는 엘러멘터리 스트림의 패킷 ID를 취득한다.
지금, DSMCC 식별자가 「1」이며, PMT가 도 22로 하면, 행 2214의 엘러멘터리 스트림이 합치하고, 패킷 ID 「5014」를 취출한다.
AM(1605b)는, OS(1601)의 라이브러리(1601b)를 통해 다중 분리부(1405)에 DSMCC방식으로 데이터가 매입된 패킷의 패킷 ID를 지정한다.
여기에서는, 패킷 ID 「5014」를 부여한다. 다중 분리부(1405)는, 부여된 패킷 ID로 필터링을 행하고, CPU(1412)에 넘겨 준다. 이 결과, AM(1605b)은, 필요한 패킷을 수집할 수 있다. AM(1605b)은, 수집한 패킷으로부터, DSMCC 방식에 따 라서 파일 시스템을 복원하고, 제1 메모리(1402) 혹은 제2 메모리(1403)에 보존한다. 파일 시스템 등의 데이터를 취출하여 제1 메모리(1402) 혹은 제2 메모리(1403)에 보존하는 것을 이후, 다운로드라고 부른다.
도 24는, 다운로드한 파일 시스템의 일례를 나타내는 도면이다.
도 중, 동그라미는 디렉토리를 사각은 파일을 나타내고, 2401은 루트 디렉토리, 2402는 디렉토리「a」, 2403은 디렉토리「b」, 2404는 파일 「TopXlet.class」, 2405 는 파일 「GameXlet.class」이다.
여기에서는, MPEG2 트랜스포트 스트림으로부터 파일 시스템을 다운로드하는 예를 기재했지만, OCAP 사양에서는, IP네트워크를 이용한 다운로드 등도 규정하고 있다. 또, AIT가 아닌 XAIT로 불리는 정보를 이용해 파일 시스템의 존재 위치를 특정하고, 파일 시스템을 다운로드하는 방법도 규정되어 있다.
다음에 AM(1605b)은, 제1 메모리(1402) 혹은 제2 메모리(1403)에 다운로드한 파일 시스템 중으로부터 실행하는 Java 프로그램을 JavaVM(1603)에 넘겨 준다. 지금, 실행하는 Java 프로그램명이「a/TopXlet」라고 하면, Java 프로그램명의 마지막에 「.class」를 부가한 파일 「a/TopXlet.class」가 실행해야 할 파일이 된다. 「/」는 디렉토리나 파일명의 단락이며, 도 24를 참조하여, 파일(2404)이 실행해야 하는 Java 프로그램이다. 다음에 AM(1605b)은, 파일(2404)을 JavaVM(1603)에 넘겨 준다.
JavaVM(1603)는, 넘겨 받은 Java 프로그램을 실행한다.
서비스 매니저(1604)는, 다른 채널의 식별자를 받으면, Java 라이브러 리(1605)에 포함되는 각 라이브러리를 통해 재생하고 있는 영상·음성 및 Iava 프로그램의 실행을, 같은 Java 라이브러리(1605)에 포함되는 각 라이브러리를 통해 정지하고, 새롭게 받은 채널의 식별자에 의거하여, 영상·음성의 재생 및 Java 프로그램의 실행을 행한다.
또, 서비스 매니저(1604)는, 재생부(1602b) 뿐만이 아니라, JavaVM(1603) 상에서 실행되는 Java 프로그램으로부터 채널의 식별자를 받는 기능도 구비한다.
구체적으로는, 채널의 식별자를 받기 위한 Java 언어의 클래스 및 그 메소드를 제공한다. 채널의 식별자를 받으면, 서비스 매니저(1604)는, Java 라이브러리(1605)에 포함되는 각 라이브러리를 통해 현재 재생하고 있는 영상·음성 및 Ja va 프로그램의 실행을, 같은 Java 라이브러리(1605)에 포함되는 각 라이브러리를 통해 정지하고, 그 후, 새롭게 받은 채널의 식별자에 의거하여, 새로운 영상·음성의 재생 및 Java 프로그램의 실행을 행한다.
다음에, 데이터 출력 장치(1301)에 있어서, 디지털 방송을 수신하고, 그 멀티미디어 데이터를 제2 메모리(1403)에 축적하는 처리에 대해 설명한다.
도 25는, 데이터 출력 장치(1301)가, 제2 메모리(1403)에 멀티미디어 데이터를 축적하는 형태의 일례를 나타내는 도면이다.
데이터 출력 장치(1301)는, 멀티미디어 데이터와 그 속성 정보, 속성 정보 테이블, URI 테이블, 재개 위치 정보 테이블을 제2 메모리(1403)에 기억한다. 도 25에 나타내는 제2 메모리에 기억된 정보는, 멀티미디어 데이터(2501)와, 멀티미디어 데이터(2502)와, 멀티미디어 데이터의 속성 정보(2511)와, 멀티미디어 데이터의 속성 정보(2512)와, 속성 정보 테이블(2521)과, URI 테이블(2531)과, 재개 위치 정보 테이블(2532)을 포함한다.
멀티미디어 데이터(2501)와, 멀티미디어 데이터(2502)는, MPEG 트랜스포트 스트림 형식의 복호화된 멀티미디어 데이터이다. 속성 정보(2511)와, 속성 정보(2512)는, 각 멀티미디어 데이터의 타이틀 등의 부가적 정보이다. 여기에서는, 속성 정보(2511)는 멀티미디어 데이터(2501)의 속성 정보를, 속성 정보(2512)는 멀티미디어 데이터(2502)의 속성 정보를, 각각 나타내는 것으로 한다.
도 26은, 본 발명의 실시의 형태 2에 있어서의 속성 정보의 일례를 나타내는 도면이다. 본 실시의 형태에 있어서는, 속성 정보는 XML(Extensible Markup Language)로 정의된 텍스트로 나타내는 것으로 한다.
도 26에서는, ContentID 요소로 그 콘텐츠의 식별자를, File Name 요소로 그 멀티미디어 데이터의 파일명을, ChannelID 요소로 도 18의 열 1801에서 나타내어져 있는 그 프로그램이 방송된 채널의 식별자를, Program No 요소로 도 19의 열 1904에 나타내어져 있는 PMT를 검색하는 프로그램 넘버를, Title 요소로 도 18의 열 1802에서 나타내어져 있는 프로그램명을, Gunre 요소로 도 18의 열 1806에 나타내어져 있는 프로그램의 종별을, Date 요소로 그 프로그램이 방송된 일시를, RecordDate 요소로 그 프로그램이 녹화된 일시를, PlaybackTime 요소로, 그 멀티미디어 데이터가 재생 혹은 네트워크(104)에 출력된 회수를, LastPlaybackDate 요소로, 그 멀티미디어 데이터가 마지막으로 재생 혹은 네트워크에 출력된 일시를, 각각 나타낸다.
또한, 속성 정보는, 이러한 XML에 의한 구성에 한정하는 것이 아니라, 다른 형식, 예를 들면, 바이너리 데이터로서 기록해도 된다. 속성 정보 테이블은, 콘텐츠의 식별자와, 그 식별자로 나타내어지는 콘텐츠의 속성 정보를 기록한 파일의 대응표이다. 도 27에 그 일례를 나타낸다.
도 27은, 본 발명의 실시의 형태 2에 있어서의 속성 정보 테이블의 일례를 나타내는 도면이다.
도 27에 있어서, 열 2701은 콘텐츠의 식별자를 나타내고, 열 2702는 속성 정보의 파일명을 나타낸다. 행 2711~2713은, 콘텐츠의 식별자와 대응하는 속성 정보의 파일명의 세트이다. 행 2711로부터는, 식별자 1의 콘텐츠의 속성 정보는 파일 0001.attr에 기록되어 있는 것을 판독할 수 있다. URI 테이블(2531)과 재개 위치 정보 테이블에 대해서는, 후술한다.
이하, 축적하는 처리에 대해 설명한다. 우선, 디스크램블까지의 동작은 상기 재생하는 경우와 같다. 다음에, 서비스 매니저(1604)는, Java 라이브러리(1605) 중의 Rec(1605j)에 그 멀티미디어 데이터의 축적을 의뢰한다. Rec(1605j)는, 우선, 상기 JMF(1605a) 및 AM(1605b)과 같이, PAT, PMT를 취득하고, 축적하는 프로그램에 관한 영상 데이터, 음성 데이터, 각 섹션 데이터의 패킷 ID를 취득한다. 지금, 부여된 채널의 식별자가 「2」로, 도 21의 PAT, 도 22의 PMT가 송신되고 있으면, JMF(1605a)와 같은 순서로, 도 22의 PMT를 획득한다. 축적하는 데이터는, 도 22의 PMT에 기술된 모든 데이터이다.
Rec(1605j)는, OS(1601)의 라이브러리(1601b)를 통해 TS디코더(1407)에, 이 들 패킷 ID를 부여하고, TS멀티플렉서(1410)에 출력시킨다. TS디코더(1407)는, 부여된 패킷 ID로 필터링을 행하고, TS멀티플렉서(1410)에 넘겨 준다.
또한, 섹션 데이터에 관해서는, 각각에 버젼 넘버가 붙여져 있고, TS디코더(1407)는, 같은 종류의 데이터는, 각 버젼 넘버마다 1회만 출력하고, 나머지는 필터링하는 구성이어도 된다.
또, Rec(1605j)는, OS(1601)의 라이브러리(1601b)를 통해 TS멀티플렉서(1410)에, 몇 종류의 데이터가 보내져 오는지를 부여하고, TS디코더(1407)로부터 넘겨 받은 데이터로부터, MPEG2 트랜스포트 스트림을 구성한다. TS멀티플렉서(1410) 는, 구성한 MPEG 트랜스포트 스트림을, CPU(1412)에 넘겨 준다.
또한, Rec(1605j)는, Java 라이브러리(1605) 중의 IO(1605g)에 의뢰하여, CPU(1412)가 TS멀티플렉서로부터 받은 MPEG 트랜스포트 스트림을 제2 메모리에 기록한다. 또한, Rec(1605j)는, 서비스 매니저(1604)에 의뢰하여, 그 프로그램의 채널 식별자를 받고, IO(1605g)에 의뢰하여, 제2 메모리(1403)에 기억된 도 18에 나타내는 프로그램 정보 중, 축적한 멀티미디어 데이터에 대응하는 것의 프로그램 정보를 독출한다.
또한, 그 축적한 멀티미디어 데이터에 식별자를 발행하고, 취득한 프로그램 정보와, 멀티미디어 데이터를 축적한 파일명으로부터 속성 정보를 만들고, IO(1603)에 의뢰하여, 그 속성 정보를 제2 메모리(1403)에 기록한다. 또한, Rec(1605j)는, IO(1605g)에 의뢰하여, 속성 정보 테이블을 독출하고, 내용을 갱신하여, IO(1605g)에 의뢰해 제2 메모리(1403)에 기록함으로써, 속성 정보 테이블을 갱신한다.
다음에, 수신한 디지털 방송의 멀티미디어 데이터를, 네트워크부(1411)로부터 출력하는 경우의 처리에 대해 설명한다.
우선, Java 라이브러리(1605) 중에 있는 네트워크 라이브러리(1605e)는, 네트워크(1304)에 접속된 단말로부터의 요구를 받고, 서비스 매니저(1604)에 요구된 채널의 식별자를 부여한다. 서비스 매니저(1604)에서는, 받은 채널의 식별자를 Tuner(1605c)에 부여하여 튜닝을 의뢰하고, 또한 CA(1605d)에 디스크램블을 의뢰한다. 계속해서, 서비스 매니저(1604)는, 네트워크 라이브러리(1605e)로 처리를 되돌려 보낸다.
네트워크 라이브러리(1605e)에서는, 상기 Rec(1605j)와 같이, TS디코더(1407), TS멀티플렉서(1410)를 제어하고, 그 프로그램의 영상 데이터, 음성 데이터, 섹션 데이터로부터 MPEG 트랜스포트 스트림을 작성한다.
또한, 네트워크 라이브러리(1605e)는, OS(1601)의 라이브러리(1601b)의 NET(1601b4)에 송신처의 어드레스를 부여한다. 계속해서, 네트워크 라이브러리(1605)는, TS멀티플렉서(1410)로부터 받은 MPEG2 트랜스포트 스트림을, 송신하는 애플리케이션 레벨의 프로토콜에 따른 형식으로 변환하고, NET(1601b4)에 차례차례 넘겨 준다.
애플리케이션 레벨의 프로토콜이란, 예를 들면, HTTP나 RTP와 같은 것이다. 이로 인해, NET(1601b4)는, 송신처 어드레스를 참조하여, 넘겨 받은 데이터를 IP 네트워크의 패킷으로 변환하고, 네트워크부(1411)에 넘겨 준다. 네트워크부(1411) 에서는, 넘겨 받은 데이터를, 접속된 네트워크의 물리 미디어에 따른 신호로 변환해 출력한다.
다음에, 제2 메모리(1403)에 축적한 멀티미디어 데이터를 재생하는 경우의 처리에 대해 설명한다.
서비스 매니저(1604)는, 콘텐츠의 식별자를 받으면, Java 라이브러리(1605) 중의 IO(1605g)에 의뢰하여, 제2 메모리(1403)로부터 속성 정보 테이블(2521)을 독출하고, 그 식별자의 콘텐츠의 속성 정보를 기록한 파일을 검색한다. 도 27의 속성 정보 테이블에서, 콘텐츠의 식별자가 1인 경우, 그 파일은 0001.attr에 해당한다.
계속해서, 서비스 매니저(1604)는, IO(1605g)에 의뢰하여, 제2 메모리(1403)로부터 그 속성 정보를 기록한 파일을 독출한다. 독출한 속성 정보로부터, 그 콘텐츠의 멀티미디어 데이터를 기록한 파일명을 취득한다. 도 26의 속성 정보인 경우, 이 파일명은 0001.m2ts가 대응한다.
계속해서, 서비스 매니저(1604)는, IO(1605g)에 의뢰하여, 그 멀티미디어 데이터의 파일로부터 MPEG 트랜스포트 스트림을 독출한다. IO(1605g)는, OS(1601)의 라이브러리(1601b)를 통해 데이터를 독출하고, CPU(1412)에 넘겨 준다.
서비스 매니저(1604)는, OS(1601)의 라이브러리(1601b)를 통해, 독출한 MPEG 트랜스포트 스트림을 다중 분리부(1405)에 넘겨 준다.
다음에 서비스 매니저(1604)는, Java 라이브러리 중에 있는 CA(1605d)에, 디스크램블러는 데이터를 디스크램블하지 않고, 통과하도록 의뢰한다.
CA(1605d)는, OS(1601)의 라이브러리(1601b)의 한정 해제(1601b2)를 통해 디스크램블러(1406)에 정보를 부여한다. 이로 인해, 디스크램블러(1406)는, 다중 분리부(1405)로부터 넘겨 받은 데이터를, 그대로 TS디코더(1407)에 넘겨 준다.
다음에 서비스 매니저(1604)는, 독출한 속성 정보로부터 채널의 식별자 혹은 프로그램 넘버를 독출하고, Java 라이브러리(1605) 중에 있는 JMF(1605a)에 부여하고, 재생을 의뢰한다. 이하, 상기의 방송으로부터 수신한 콘텐츠의 경우와 같은 처리에 의해서, 영상 데이터, 음성 데이터의 재생을 행할 수 있다.
또한, 서비스 매니저(1604)는, Java 라이브러리 중에 있는 AM(1605b)에 채널의 식별자 혹은 프로그램 넘버를 부여하고, 데이터 방송의 재생을 의뢰한다. 이하, 상기의 방송으로부터 수신한 콘텐츠와 같은 처리에 의해서, 데이터 방송의 재생을 행할 수 있다.
Java 라이브러리(1605)는, 제2 메모리(1403)에 저장되어 있는 복수의 Java 라이브러리의 집합이다. 본 실시의 형태에서는, Java 라이브러리(1605)는, JMF(1605a), AM(1605b), Tuner(1605c), CA(1605d), 네트워크 라이브러리(1605e), 재생 Lib(1605f), IO(1605g), AWT(1605h), SI(1605i), 및, Rec(1605j) 등을 포함하고 있다.
JMF(1605a), AM(1605b), Tuner(1605c), CA(1605d), Rec(405j)의 기능은, 이미 설명했기 때문에, 여기서의 설명은 생략한다.
재생 Lib(1605f)는, 제2 메모리(1403)가 기억하고 있는, 현재 재생하고 있는 채널의 식별자를 Java 프로그램에 건네주기 위한 Java 언어의 클래스 및 메소드를 (이하 Java API로 기술) 제공한다. 이 Java API를 이용함으로써, Java 프로그램은, 현재 재생 중인 채널을 알 수 있다.
IO(1605g)는, Java 프로그램이 제2 메모리(1403)에 데이터를 기록하기 위한 Java API, 혹은, 그 기록한 데이터를 제2 메모리(1403)로부터 읽어들이기 위한 Java API를 Java 프로그램에 제공한다. 이 API를 이용함으로써, Java 프로그램은, 임의의 데이터를 제2 메모리(1403)에 보존할 수 있다. 이 보존된 데이터는 데이터 출력 장치(1301)의 전원이 오프가 되어도 사라지지 않기 때문에, 데이터 출력 장치(1301)의 전원이 투입된 후, 다시 그 데이터를 읽어들일 수 있다.
AWT(1605h)는, Java 프로그램이 묘화(描畵)를 행하거나, 입력부(1401)로부터의 키 입력 통지를 받기 위한 Java API를 제공한다. 구체적으로는, 「The Java class Libraries Second Edition, Volume 2」(ISBNO-201-31003-1)로 기정되는 java.awt 패키지, java.awt.event 패키지 및 그 외의 java.awt의 서브 패키지가 상당한다. 여기에서는, 상세한 설명을 생략한다.
SI(1605i)는, Java 프로그램이 채널 정보나 전자 프로그램표 정보를 취득하는 Java API를 제공한다. 구체적으로는, Java TV 사양 등이 존재한다. 또, 생(生) 바이너리 데이터를 방송 중인 MPEG2 트랜스포트 스트림으로부터 취득하는 MPEG 섹션 필터 API가 OCAP 사양 중에서 정의되어 있고, 송신되어 온 독자적인 전자 프로그램 데이터를 Java 애플리케이션이 이해하고 취급할 수도 있다.
네트워크 라이브러리(1605e)는, OS(1601)의 라이브러리(1601b)의 NET(1601b4)를 통해, 네트워크(1304)에 접속된, 단말(1302) 및 단말(1303)과 통신 하는 것이다. 통신은, 콘텐츠 일람이나 EPG의 송신, 단말로부터의 멀티미디어 데이터 송신이나, 송신 중단, 송신 재개, 송신 종료 요구의 수신, 및 멀티미디어 데이터의 송신이다.
도 28은, 네트워크 라이브러리(1605e)의 내부 구성의 일례를 나타내는 블록도이다. 네트워크 라이브러리(1605e)는, 제어부(2801)와, 정보 수신부(2802)와, 데이터 출력부(2803)와, 속성 관리부(2804)와, 데이터 수신부(2805)를 포함한다. 또한, 네트워크 라이브러리(1605e)는, IP네트워크에 관련하는 다른 기능을 포함해도 된다.
제어부(2801)는, 다운로드한 Java 애플리케이션에 대해서, 네트워크 라이브러리(1605e)가 실현하는 기능을 제공한다. 즉, 제어부(2801)은, Java 애플리케이션에 대해서 Java API를 제공하고, Java 애플리케이션이, 이 API를 호출함으로써, 네트워크를 이용한 기능을 실행할 수 있다.
제어부(2801)는, Java API가 호출되면, 적절히, 정보 통신부(2802), 데이터 출력부(2803), 속성 관리부(2804), 데이터 수신부(2805)나, 다른 Java 라이브러리(1605) 및 OS(1601)의 라이브러리(1601b)를 이용해 처리를 행한다.
또, 제어부(2801)는, 필요에 따라서, Java 애플리케이션의 콜백 함수를 이용해, Java 애플리케이션에 통지를 행한다.
도 29는, 네트워크 라이브러리(1605e)의 내부 구성에 포함되는 제어부(2801)가 제공하는 Java API의 일례를 나타내는 도면이다.
도 29(1) 메소드 collect Device()는, 네트워크(1304)에 접속되어 있는 외부 장치의 정보를 모으고, 그 정보로서 Net Device 오브젝트의 배열을 되돌려 보낸다. 실패시에는 null을 되돌려 보낸다. 본 메소드에 의해, 네트워크(1304)에 접속된 기기의 정보를 얻을 수 있다.
도 30은, 네트워크 라이브러리(1605e)로 사용되는 NetDevice 클래스의 구성의 일례를 나타내는 도면이다.
도 30에서, addr는 당해 장치의 네트워크 어드레스를, friendlyName은 당해 장치에 붙인 닉네임을, dType은 당해 장치의 종별을 나타내고, 0이 디지털 방송을 수신 가능한 데이터 출력 장치, 1이 디지털 방송 수신부를 갖지 않는 데이터 출력 장치, 2가 단말을 나타내는 것으로 한다. 이러한 정보 취득은, UPnP DA로 정의된 방법에 따라 행하는 것이 가능하기 때문에, 처리의 자세한 것은 생략한다.
도 29(2) 메소드 registerHandler()는, 인수 handler로 부여된, ServHandler인터페이스를 실장한 핸들러를 시스템에 등록하는 것으로, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다. Java 애플리케이션은, 그 핸들러를 등록함으로써, 네트워크 라이브러리(1605e)로부터 콜백을 받을 수 있다.
도 31은, 네트워크 라이브러리(1605e)에서 사용되는 ServHandler 인터페이스의 구성의 일례를 나타내는 도면이다.
도 31에 있어서, ServHandler 인터페이스의 메소드 notifyChannelID()는, 단말로부터 멀티미디어 데이터 송신이 요구된 채널의 식별자를, Java 애플리케이션에 통지하는 것이다.
Java 애플리케이션은, 서비스 매니저(1604)에 그 식별자를 부여하고, 채널의 튜닝, 디스크램블을 의뢰하고, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보냄으로써, 네트워크 라이브러리(1605e)에 제어를 되돌려 보낸다.
또한, 상기 채널의 식별자는, 네트워크 라이브러리(1605e)가, 서비스 매니저(1604)에 직접 넘겨 주고, 튜닝, 디스크램블을 의뢰하는 구성이어도 된다.
또, 메소드 notifyRecording()은, Java 애플리케이션에 채널의 식별자를 통지하여, 그 데이터의 축적을 의뢰하는 것이며, 반환값으로서 축적한 콘텐츠의 식별자를 받는다. Java 애플리케이션은, 서비스 매니저(1604)에 그 채널의 식별자를 부여하고, 그 멀티미디어 데이터의 축적을 의뢰하고, 콘텐츠의 식별자를 받는다.
서비스 매니저(1604)는, 상기와 같이, Rec(1605j)를 이용해 그 멀티미디어 데이터를 축적한다. 또한, 상기 채널의 식별자는, 네트워크 라이브러리(1605e)가, 서비스 매니저(1604)에 직접 넘겨 주고, 축적을 의뢰하는 구성이어도 된다.
도 29(3) 메소드 actMultimediaServer()는, Java 애플리케이션으로부터 네트워크 라이브러리(1605e)에, 멀티미디어 서버 기능의 기동 및 동작을 의뢰하는 것이며, 정상적으로 처리가 종료되면 true를 되돌려 보내고, 이상이 생기면 false를 되돌려 보낸다. 본 메소드가 호충되면, 네트워크 라이브러리(1605e)의 제어부(2801)는, 필요에 따라서, 정보 통신부(2802), 데이터 출력부(2803), 속성 관리부(2804), 데이터 수신부(2805)나, 다른 Java 라이브러리(1605) 및 OS(1601)의 라이브러리(1601b)를 이용하고, 또 Java 애플리케이션이나 서비스 매니저(1604)에 통지를 행함으로써, 멀티미디어 데이터를 제공하는 멀티미디어 서버로서 처리를 행한다. 상세한 것에 대하여는, 후술한다.
도 29(4) 메소드 doMultimediaServer()는, Java 애플리케이션으로부터 네트워크 라이브러리(1605e)로, 인수 dev로 부여된 RemoteDevice 오브젝트로 나타내어지는 네트워크(1304)에 접속된 장치에 대한 멀티미디어 서버로서 동작하도록 의뢰하는 것이며, 정상적으로 처리가 종료하면 true를 되돌려 보내고, 이상이 생기면 false를 되돌려 보낸다.
도 30은, RemoteDevice 클래스의 일례를 나타내는 도면이다.
도 30에서, RemoteDevice 클래스는, NetDevice 클래스의 확장 클래스로서 정의된다.
멤버 변수 s는, NetDevice 클래스의 멤버 변수에 의해서 나타내어지는 장치와 통신하는 Socket 오브젝트를 나타낸다. 본 메소드가 호출되면, 네트워크 라이브러리(1605e)의 제어부(2801)는, 필요에 따라서, 정보 통신부(2802), 데이터 출력부(2803), 속성 관리부(2804), 데이터 수신부(2805)나, 다른 Java 라이브러리(1605) 및 OS(1601)의 라이브러리(1601b)를 이용하여, 또 Java 애플리케이션이나 서비스 매니저(1604)로 통지를 행함으로써, 부여된 장치로 멀티미디어 데이터를 제공하는 멀티미디어 서버로서 처리를 행한다. 상세한 것에 대해서는, 후술한다.
도 29(5) 메소드 stopMultimediaServer()는, Java 애플리케이션으로부터 네트워크 라이브러리(1605e)에, 메소드 actMultimediaServer() 혹은 doMultimediaS erver()에 의해서 기동된 멀티미디어 서버의 종료를 의뢰하는 것이다. 네트워크 라이브러리(1605e)는, 본 메소드가 호출되면, 기동 중인 멀티미디어 서버의 동작을 종료시킨다.
도 29(6) 메소드 sendContentList()는, 인수 dev로 부여된 네트워크(1304) 에 접속되어 있는 장치에, 제2 메모리(1403)에 축적하고 있는 멀티미디어 데이터의 일람을 송신하는 것이다. 이 통신은, UPnP AV에 정의된 방법으로 실현할 수 있기 때문에, 자세한 것은 생략한다.
본 메소드가 호출되면, 네트워크 라이브러리(1605e)는, IO(1605g)를 이용하여, 속성 정보 테이블(2521)을 독출하고, 또, 독출한 속성 정보 테이프(2521)로부터 얻어지는 각 콘텐츠의 속성 정보를 순서대로 독출한다. 또, 네트워크 라이브러리(1605e)는, IO(1605g)를 이용해 URI 테이블(2531)을 독출한다.
네트워크 라이브러리(1605e)는, URI 테이블(2531)을 검색함으로써, 각 콘텐츠에 액세스하기 위한 URI를 취득하고, 속성 정보와 아울러, UPnP AV로 결정된 포맷의 콘텐츠 일람을 작성한다. 그리고, OS(1601)의 라이브러리(1601b) 중의 NET(1601b4)를 통해서 네트워크부(1411)을 제어하고, 작성한 콘텐츠 일람을 송신한다. 송신에는, 후술의 데이터 출력부의 메소드 sendData()를 이용해도 된다.
도 32는, 본 발명의 실시의 형태 2에 있어서의 URI 테이블(2531)의 구성의 일례를 나타내는 도면이다.
도 32에 있어서, 열 3201은 각 콘텐츠의 식별자를 나타내고, 열 3201은 각 콘텐츠에 액세스하기 위한 URI를 나타낸다. 각 행 3211~3213은, 콘텐츠의 식별자와 URI의 세트가 나타내어져 있다. 예를 들면, 행 3211은, 식별자 1의 콘텐츠의 URI는, rtsp://192.168.0.3/AVData/0001.m2ts인 것을 나타내고 있다.
도 29(7) 메소드 sendEPGData()는, 인수 dev로 부여된 네트워크(1304)에 접 속되어 있는 장치에, EPG 정보를 송신하는 것이다. 이 통신은, 메소드 sendContentList()와 같이, UPnP AV로 정의된 방법으로 실현할 수 있기 때문에, 자세한 것은 생략한다.
본 메소드가 호출되면, 네트워크 라이브러리(1605e)는, IO(1605g)를 이용해, 제2 메모리(1403)에 기억되어 있는, 도 18에 나타낸 EPG 정보를 독출하고, UPnP AV로 정의된 포맷으로 변환한다. 그리고, OS(1601)의 라이브러리(1601b) 중의 NET(1601b4)를 통해서 네트워크부(1411)를 제어하고, 변환한 EPG 정보를 송신한다. 또한, URI는 각 채널마다 할당되어 있고, 제2 메모리(1403)에 URI 테이블(2531)과 같은 형식으로 축적되어 있고, 그 테이블을 독출함으로써 취득하는 것으로 한다. 송신에는, 후술의 데이터 출력부의 메소드 sendData()를 이용해도 된다. 또, 제2 메모리(1403)에 기억하고 있는, 도 18에 나타내는 EPG 정보의 데이터를 그대로 송신하는 구성이어도 된다.
도 29(8) 메소드 removePauseStatus()는, 인수 rInfo로 부여된 재개 위치 정보를, 제2 메모리(1403)로부터 삭제함으로써, 원래 존재하지 않거나, 삭제가 성공하면 true를 되돌려 보내고, 삭제에 실패하면 false를 되돌려 보낸다. 인수 rInfo는, ReopenContentInfo 클래스의 인스턴스이다.
도 33은, 네트워크 라이브러리(1605e)에서 사용되는 ReopenContentInfo 클래스의 구성의 일례를 나타내는 도면이다.
도 33에 있어서, 멤버 변수 cid는, 도 26 및 도 27에 나타낸, 축적된 콘텐츠의 식별자를 나타내는 것이며, 멤버 변수 pid는, 본 ReopenContentInfo 오브젝트에 의해서 나타내어지는 멀티미디어 데이터 송신의 중단을 특정하는 식별자를 나타내는 것이며, 멤버 변수 rp는, 멀티미디어 데이터의 출력을 재개하는 데이터 위치를, 그 멀티미디어 데이터가 기록되어 있는 파일의 선두로부터의 바이트 위치로 나타낸 것이며, 멤버 변수 rterm은, 그 멀티미디어 데이터의 출력을 재개하는 경우의 송신처 단말이 지정되어 있는 경우에, 그 단말을 나타내는 NetDevice 오브젝트를 나타내는 것이다. 메소드 removePauseStatus()는, 인수 rInfo와 콘텐츠 식별자 및 중단의 식별자가 일치하는 재개 위치 정보를 삭제한다. 재개 위치 정보는, 도 25에 나타낸 대로, 재개 위치 정보 테이블(2532)로서, 제2 메모리(1403)에 기억되어 있다.
도 34는, 본 발명의 실시의 형태 2에 있어서의 재개 위치 정보 테이블(2532)의 구성의 일례를 나타내는 도면이다.
도 34에 있어서, 열 3401은 콘텐츠의 식별자를 나타내고, 열 3402는 데이터 출력 중단의 식별자를 나타내고, 열 3403은 멀티미디어 데이터의 출력을 재개하는 데이터 위치를 나타내고, 열 3404는 그 멀티미디어 데이터의 출력을 재개하는 경우의 송신처 단말을 나타낸다. 재개 위치 정보는 이러한 세트로서 나타내어 지고, 행 3411~3413이 그에 해당한다.
또한, 행 3411의 재개 위치 정보에서는, 데이터 출력 재개시의 단말이 지정되어 있기 때문에, 열 3404에 단말이 나타나 있지만, 행 3412 및 행 3413의 재개 위치 정보에서는, 데이터 출력 재개시의 단말이 지정되어 있지 않기 때문에, 열 3404에는 나타내져 있지 않다.
또한, 네트워크 라이브러리(1605e)는, 중단의 식별자를 할당하지 않는 구성이어도 된다. 그때, 본 메소드는, 콘텐츠 식별자가 일치하는 것을 삭제하는 구성이어도 된다.
본 메소드가 호출되면, 네트워크 라이브러리(1605e)는, 우선, IO(1605g)를 이용하여, 재개 위치 정보 테이블(2532)을 독출한다. 계속해서, 재개 위치 정보 테이블(2532)을 검색하고, 열 3401에 기술되어 있는 콘텐츠의 식별자와, 열 3402에 나타내어져 있는 중단의 식별자가, 인수 rInfo인 것과 일치하는 행을 검색한다.
그 행이 발견되면, 재개 위치 정보 테이블(2532)로부터 그 행을 삭제한다. 계속해서, IO(1605g)를 이용하여, 갱신한 재개 위치 정보 테이블(2532)을 제2 메모리(1403)에 기록한다. 또한, 후술하는 속성 관리부의 메소드 updateAttribute()에 그 콘텐츠의 식별자와 재개 위치 정보 테이블(2532)의 내용을 부여하여 호출함으로써, 그 콘텐츠의 속성을 갱신하고, 그 반환값을 되돌려 보내고, 처리를 종료한다.
도 29(9) 메소드 setPauseStatus()는, 인수 rInfo로 부여된 재개 위치 정보를, IO(1605g)를 통해, 제2 메모리(1403)에 기록하는 것이며, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다.
본 메소드가 호출되면, 네트워크 라이브러리(1605e)는, 인수 rInfo로 부여된 재개 위치 정보의 중단에 식별자를 발행하고, rInfo의 멤버 변수 pid로 설정한다. 계속해서, IO(1605g)를 이용하여, 재개 위치 정보 테이블(2532)을 독출한다. 독출한 재개 위치 정보 테이블(2532)에, rInfo의 내용을 나타내는 행을 추가해 갱신한다. 계속해서, IO(1605g)를 이용하여, 갱신한 재개 위치 정보 테이블(2532)을 제2 메모리(1403)에 기록한다.
계속해서, 후술하는 속성 관리부의 메소드 updateAttribute()에 그 콘텐츠의 식별자와 재개 위치 정보 테이블(2532)의 내용을 부여하여 호출함으로써, 그 콘텐츠의 속성을 갱신하고, 그 반환값을 되돌려 보내고, 처리를 종료한다.
도 29(10) 메소드 getPauseStatus()는, 제2 메모리(1403)로부터 재개 위치 정보 테이블(2532)을 독출하고, 그 내용을 ReopenContentInfo 오브젝트의 배열로서 되돌려 보내는 것이며, 성공하면 그 배열을 되돌려 보내고, 실패하면 null을 되돌려 보낸다.
본 메소드가 호출되면, 네트워크 라이브러리(1605e)는, 우선, IO(1605g)를 이용하여, 제2 메모리(1403)로부터 재개 위치 정보 테이블(2532)을 독출한다. 계속해서, 재개 위치 정보 테이블(2532)의 각 행마다, 그 내용을 넣은 ReopenContentInfo 오브젝트를 작성하여, 배열을 작성한다. 모든 행의 내용을 포함하는 배열을 다 만들면, 그 배열을 되돌려 보낸다. 또, 재개 위치 정보 테이블(2532)이 없거나, 처리 도중에 에러가 일어나면 null을 되돌려 보낸다. 또, 재개 위치 정보 테이블(2532)에 행이 전혀 없으면, 요소수가 0인 배열을 되돌려 보낸다.
도 29(11) 메소드 setServerStatus()는, Java 애플리케이션으로부터 네트워크 라이브러리(1605e)로, 데이터 중단 재개를 서포트하는지의 여부를 설정한다. 인수로 0이 부여되면 데이터 중단 재개를 서포트하지 않는 멀티미디어 서버로서 작동하고, 인수로 비(非) 0이 주어지면, 데이터 중단 재개를 서포트하는 멀티미디어 서버로서 작동한다.
정보 수신부(2802)는, OS(1601)의 라이브러리(1601) 중의 NET(1601b4)를 통해서 네트워크부(1411)를 제어하고, 지정된 네트워크(1304)에 접속되어 있는 외부 장치로부터의 접속 요구를 받아들이면 메시지의 수신을 행하는 것이다.
정보 수신부(2802)는, 제어부(2801) 및 다운로드한 Java 애플리케이션에 Java API를 제공한다.
도 35는, 네트워크 라이브러리(1605e)의 내부 구성에 포함되는 정보 수신부(2802)가 제공하는 Java API의 일례를 나타내는 도면이다.
도 35(1) 메소드 acceptConnection()은, 인수 s로 부여되는 Socket 오브젝트에 의해서, 외부 장치로부터의 대기를 행하고, 접속 요구가 있던 장치와의 접속을 확립하여, 그 장치의 정보와, 그 장치와 통신하는 Socket 오브젝트를 포함하는 RemoteDevice 오브젝트를 되돌려 보내는 것이며, 성공하면 그 RemoteDevice 오브젝트를 되돌려 보내고, 실패하면 null을 되돌려 보내는 것이다.
예를 들면, 단말로부터 RTSP 세션의 접속 요구를 받은 경우는, RTSP 메시지를 송수신하기 위한 Socket 오브젝트와 그 요구가 있던 단말의 IP 어드레스로부터 RemoteDevice 오브젝트를 생성할 수 있다.
또한, 본 메소드는, 또한, 인수로서 NetDevice 오브젝트의 배열을 부여받고, 그 배열의 각 요소로 나타내어지는 외부 장치로부터의 접속 요구에만 회답하는 구성이어도 된다. 또, 본 메소드는, 마찬가지로 NetDevice 오브젝트의 배열을 인수로서 부여받고, 그 배열의 각 요소로 나타내어지는 외부 장치로부터의 접속 요구의 경우에는, 해당하는 NetDevice 오브젝트와 통신하는 Socket 오브젝트로부터 RemoteDevice 오브젝트를 생성하는 구성이어도 된다.
도 35(2) 메소드 receiveRequestMessage()는, 인수 dev로 부여된 외부 장치로부터의 메시지를, 인수 dev로 부여된 Socket 오브젝트를 이용해 수신하고, 바이트 데이터의 배열로서 되돌려 보내는 것이며, 성공하면 메시지의 바이트열을 되돌려 보내고, 실패하면 null을 되돌려 보낸다.
도 35(3) 메소드 receiveRequest()는, 인수 dev로 부여된 외부 장치로부터의 RTSP의 리퀘스트 메시지를, 인수 dev로 부여된 Socket 오브젝트를 이용해 수신하고, 내용을 해석하여, RequestInfo 오브젝트로서 되돌려 보내는 것이며, 성공하면 그 리퀘스트 메시지를 나타내는 RequestInfo 오브젝트를 되돌려 보내고, 실패하면 null을 되돌려 보낸다.
도 36은, 네트워크 라이브러리(1605e)로 사용되는 RequestInfo 클래스의 구성의 일례를 나타내는 도면이다. 도 36에 있어서, 멤버 변수 requestType는 요구의 종류를 나타내고, 0이 SETUP을, 1이 PLAY를, 2가 PAUSE를, 3이 TEARDOWN을 각각 나타내는 것으로 한다.
또, 멤버 변수 seq는 RTSP 리퀘스트의 Seq 헤더의 값인 시퀀스 번호를 나타낸다. 멤버 변수 session은, RTSP 리퀘스트의 Session 헤더의 값인 세션 번호를 나타낸다. 멤버 변수 contentURI는, 요구되고 있는 콘텐츠의 URI를 나타내는 문자열이다. 멤버 변수 range는, RTSP 리퀘스트의 Range 헤더의 값인 문자열이다. 멤버 변수 extentHeader는, RTSP 리퀘스트의 확장 헤더를 저장하는 String 오브젝트 의 배열이며, 확장 헤더 1개에 대해, 1개의 String 오브젝트에 저장한다.
데이터 출력부(2803)는, OS(1601)의 라이브러리(1601) 중의 NET(1601b4)를 통해서 네트워크부(1411)를 제어하고, 지정된 네트워크(1304)에 접속되어 있는 외부 장치에, 지정된 데이터를 출력하는 것이다.
데이터 출력부(2803)는, 제어부(2801) 및 다운로드한 Java 애플리케이션에 Java API를 제공한다.
도 37은, 네트워크 라이브러리(1605e)의 내부 구성에 포함되는 데이터 출력부(2803)가 제공하는 Java API의 일례를 나타내는 도면이다.
도 37(1) 메소드 sendData()는, 인수 dev로 부여된 외부 장치로, 인수 dev로 부여된 Socket 오브젝트를 이용하여, 인수 mes로 부여된 데이터를 송신하는 것이며, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다.
도 37(2) 메소드 sendMessage()는, 인수 dev로 부여된 외부 장치로, 인수 dev로 부여된 Socket 오브젝트를 이용하여, 인수 res로 부여된 RTSP 메시지를 생성해 송신하는 것이며, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다. 인수 res는, ResponseInfo 클래스의 인스턴스로 부여된다.
도 38은, 네트워크 라이브러리(1605e)로 사용되는 ResponseInfo 클래스의 구성의 일례를 나타내는 도면이다. 도 38에 있어서, 멤버 변수 responseCode는 리스폰스 코드를 나타내고, 예를 들면, 리스폰스가 200 OK의 리스폰스이면, responseCode는 200이 된다. 리스폰스 코드에 대해서는, RTSP의 RFC를 참조하기 바란다.
멤버 변수 seq는, RTSP 리스폰스의 Seq 헤더의 값이 되는 시퀀스 번호이다. 멤버 변수 session은, RTSP 리스폰스의 Session 헤더의 값인 세션 번호를 나타낸다. 멤버 변수 range는, RTSP 리스폰스의 Range 헤더의 값인 문자열이다. 멤버 변수 headers는, RTSP 리스폰스 외의 헤더를 저장하는 String 오브젝트의 배열이며, 헤더 1개에 대해, 1개의 String 오브젝트를 저장한다.
도 37(3) 메소드 sendMultimediaData()는, 인수 is로 부여된 InputStream으로부터 멀티미디어 데이터를 독출하고, 인수 dev로 부여된 외부 장치로, 인수 dev로 부여된 Socket 오브젝트를 이용하여, 독출한 멀티미디어 데이터를 송신하는 것이며, 성공하면 true를 되돌려 보내고어, 실패하면 false를 되돌려 보낸다. 본 메소드는, is로부터 EOF를 독출할 때까지 처리가 행해진다. 인수 dev는, RemoteDeviceUDP 클래스의 오브젝트로 부여된다.
도 30은, RemoteDeviceUDP 클래스의 구성의 일례를 나타내는 도면이다. 본 클래스는, NetDevice 클래스의 확장 클래스로서 정의되고 있다. 멤버 변수 ds는, NetDevice 클래스의 멤버 변수에 의해서 나타내어지는 장치와 UDP 베이스로 통신하는 DatagramSocket 오브젝트를 나타낸다.
도 37(4) 메소드 terminateTransfer()는, 인수 dev로 부여된 장치로의 멀티미디어 데이터의 송신을 정지시키는 것으로, 정지시킬 때까지 송신한 데이터의 바이트수를 되돌려 보내는 것이다.
속성 관리부(2804)는, 제2 메모리(1403)에 기억한 콘텐츠의 속성 정보 중, 데이터 출력 중단을 나타내는 속성을 갱신하는 것이다.
속성 관리부(2804)는, 제어부(2801) 및 다운로드한 Java 애플리케이션에 J ava API를 제공한다.
도 39는, 네트워크 라이브러리(1605e)의 내부 구성에 포함되는 정보 수신부(2802)가 제공하는 Java API의 일례를 나타내는 도면이다.
도 39(1) setAttributeValue()는, 인수 cid로 부여된 식별자의 콘텐츠의 속성 정보의 「데이터 출력 중단 중」인 값을, 인수 isPause로 부여된 값으로 설정하는 것이다. 즉, 인수 isPause가, true이면, 인수 cid로 부여된 식별자의 콘텐츠의 속성 정보로 「데이터 출력 중단 중」인 속성을 부여하는 것이며, 인수 isPause가 false인 경우는, 인수 cid로 부여된 식별자의 콘텐츠의 속성 정보로 「데이터 출력 중단 중」인 속성이 있으면, 그것을 삭제하는 것이다. 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다.
본 메소드가 호출되면, 네트워크 라이브러리(1605e)는, IO(1605g)를 이용하여, 속성 정보 테이블(2521)을 독출하고, 그 콘텐츠의 식별자를 갖는 속성 정보를 검색한다. 계속해서, IO(1605g)를 이용하여, 그 콘텐츠의 속성 정보를 기술한 파일로부터 속성 정보를 독출한다. 계속해서, 「데이터 출력 중단 중」인 속성을 삭제해 갱신하고, IO(1605g)를 이용하여, 갱신한 속성 정보를 제2 메모리(1403)에 기록하고, true를 되돌려 보내 처리를 종료한다.
도 39(2) 메소드 updateAttribute()는, 인수 cid로 부여된 식별자의 콘텐츠에 관해서, 인수 rInfo로 부여된 재개 위치 정보 테이블(2532)의 내용으로부터, 그 콘텐츠의 속성 정보에 있는 「데이터 출력 중단 중」인 속성의 갱신을 행하는 것으 로, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다.
본 메소드가 호출되면, 네트워크 라이브러리(1605e)는, 인수 rInfo로 부여된 재개 위치 정보 테이블(2532)의 내용 중에, 인수 cid로 부여된 식별자의 콘텐츠에 관한 정보가 있는지의 여부를 조사한다. 이것은, 도 34에 나타낸 재개 위치 정보 테이블(2532)의 열 3401을 조사함으로써 행할 수 있다.
재개 위치 정보 테이블(2532) 중에, 그 콘텐츠에 관한 정보가 있는 경우는, 네트워크 라이브러리(1605e)는, 인수로서 cid의 값과 true를 부여하여 메소드 setAttributeValue()를 호출하여, 속성 정보의 갱신을 행한다. 또, 재개 위치 정보 테이블(2532) 중에, 그 콘텐츠에 관한 정보가 없는 경우는, 네트워크 라이브러리(1605e)는, 인수로서 cid의 값과 false를 부여하여 메소드 setAttributeValue()를 호출하고, 속성 정보의 갱신을 행한다. 어느 경우나, setAttributeValue()의 반환값을 그대로 되돌려 보낸다.
데이터 수신부(2805)는, 데이터 출력 장치(1301)의 TS디코더(1407)와 TS멀티플렉서(1410)를 OS(1601)의 라이브러리(1601b)를 통해서 제어하고, TS디코더(1407)에 의해서 필터링된, 영상, 음성, 섹션 데이터를 TS멀티플렉서(1410)에 의해서 MPEG2 트랜스포트 스트림으로 구성해 독출하는 것이다.
데이터 수신부(2805)는, 제어부(2801) 및 다운로드한 Java 애플리케이션에 Java API를 제공한다.
도 40은, 네트워크 라이브러리(1605e)의 내부 구성에 포함되는 데이터 수신부(2805)가 제공하는 Java API의 일례를 나타내는 도면이다.
도 40(1) 메소드 openProgram()는, TS디코더(1407) 및 TS멀티플렉서(1410)를 제어하고, TS멀티플렉서(1410)가 구성한 MPEG2 트랜스포트 스트림을 독출하는 InputStream의 오브젝트를 되돌려 보낸다.
또한, 실패시에는 null이 되돌아 간다. 본 메소드가 호출되면, 네트워크 라이브러리(1605e)는, 인수 cid로 지정된 채널의 식별자로부터 얻어지는 PAT, PMT로부터, 그 채널에 대응하는 영상 데이터, 음성 데이터, 섹션 데이터의 PID를 취득하고, OS(1601)의 라이브러리(1601b)를 통해서 TS디코더(1407)에 부여하여 필터링시키고, 그 영상 데이터, 음성 데이터, 섹션 데이터를 TS멀티플렉서(1410)에 넘겨 주게 한다.
이때, 섹션 데이터는 각 버젼 넘버마다 1회만 출력하는 구성이어도 된다. 또한, 네트워크 라이브러리(1605e)는, OS(1601)의 라이브러리(1601b)를 통해서 TS로 TS멀티플렉서(1710)를 제어하고, TS디코더(1407)로부터 넘겨 받은 데이터로부터, MPEG2 트랜스포트를 구성시키고, CPU(1412)로 넘겨 주게 한다.
여기서, 제어부(2801)의 메소드 actMultimediaServer()와 메소드 doMultimedia Server()의 처리의 상세에 대하여 설명한다.
우선, 메소드 actMultimediaServer()에 대해 설명한다. 본 메소드가 호출되면, 네트워크 라이브러리(1605e)는, 우선 collectDevice()를 호출하고, 네트워크에 접속된 장치의 인식을 행한다. 또, Socket 오브젝트를 생성하여, UPnP DA 및 UPnP AV에 정의된 통신의 대기를 행한다.
이것들은, 다른 스레드 혹은 프로세스를 생성하여 행하게 한다. 이로 인해, 수시 UPnP DA로 규정된 통신을 행하여, 접속되어 있는 장치의 일람을 갱신한다. 또, 네트워크에 접속된 단말로부터, UPnP AV에 정의된 콘텐츠 일람 취득 요구를 받은 경우, 메소드 sendContentList()를 호출하여, 그 요구를 발행한 단말에, 콘텐츠 일람을, UPnP AV의 정의에 따라서 송신한다.
또, 마찬가지로 네트워크에 접속된 단말로부터, EPG 데이터 송신 요구를 받은 경우, 메소드 sendEPGData()를 호출하고, 그 요구를 발행한 단말에, EPG 데이터를, UPnP AV의 정의에 따라서 송신한다. 또한, Socket 오브젝트 s를 생성하고, s를 인수로 하여 정보 수신부(2802)의 메소드 acceptConnection()을 호출함으로써, 네트워크(1304)에 접속된 단말(1302) 및 단말(1303)로부터의 RTSP 세션의 접속 요구를 기다린다. 메소드 acceptConnetion()이 접속 요구를 받아들이고, RemoteDevice 오브젝트를 되돌려 보내면, 그 RemoteDevice 오브젝트를 인수로 하여 메소드 doMultimediaServer()를 호출함으로써, 접속 요구가 있던 단말로의 멀티미디어 서버로서의 기능을 실행한다.
또한, 본 메소드는, 호출되었을 때에, 스레드 혹은 프로세스를 신규로 생성하고, 그 후 동작하는 구성이어도 된다. 또, 메소드 acceptConnection()에 의해 접속 요구를 받아 들이면, 스레드 혹은 프로세스를 신규로 생성하고, 그 후 메소드 doMultimediaServer()를 호출하는 구성이어도 된다.
다음에, 메소드 doMultimediaServer()의 동작에 대해 설명한다. 본 메소드가 호출되면, 네트워크 라이브러리(1605e)는, 정보 수신부(2802)의 메소드 receiveRequest()를 호출하고, RTSP 리퀘스트 메시지를 수신해 해석한다. 그리고, 리퀘스트의 내용에 따라서 처리를 행하고, 또 RTSP 리스폰스 메시지를 작성하여, 정보 수신부(2802)의 메소드 sendMessage()를 호출하여, 단말로 송신한다. 이하, RTSP 리퀘스트에 따른 처리에 대해서, 각각 설명한다.
우선, RTSP 리퀘스트가 SETUP이었던 경우, Java 라이브러리(1605) 중의 IO(1605g)를 이용하여, URI 테이블(2531)을 독출하고, 그 리퀘스트에 포함되는 URI에 대응하는 콘텐츠를 검색한다. 그 콘텐츠가 제2 메모리(1403)에 축적되어 있는 콘텐츠인 경우, IO(1605g)를 이용하여, 그 콘텐츠의 파일을 독출하는 lnputStream 오브젝트를 생성한다. 또, 그 리퀘스트가 방송 중인 채널을 나타내고 있는 경우, 메소드 registarHandler()로 등록된 ServHandler를 실장한 핸들러의 메소드 notifyChannellD()를 호출하여 채널의 식별자를 부여하고, 튜닝을 의뢰한다.
또한, 데이터 수신부(2805)의 메소드 openProgram()을 호출하여, 그 콘텐츠를 독출하는 InputStream을 작성한다. 어느 경우나, InputStream이 얻어지면, RTSP 리스폰스 메시지를 나타내는 ResponseInfo 오브젝트를 작성하고, 멤버 변수 responseCode에는 200을 설정하고, 멤버 변수 seq에는, RTSP 리퀘스트와 같은 값을 설정한다.
또, 그 RTSP 세션의 세션 번호를 발행하여, 멤버 변수 session에 설정한다. 또, 멀티미디어 데이터를 통신하는 RTP의 포트 번호를 기술한 헤더를 작성하여, 멤버 변수 headers로 설정한다. 또한, 데이터 출력부(2803)의 메소드 sendMessage()를 호출하여, 리스폰스 메시지를 단말에 송신한다. 또한, 수신한 RTSP 리퀘스트의 헤더 Transport의 값으로부터, 단말이 데이터 수신에 사용하는 포트 번호를 취득하 고, 또한, 데이터 출력 장치(1301)가 이 SETUP으로 설정된 콘텐츠를 송신하는 RTP의 포트 번호를 발행한다. 이들 포트 번호와 본 메소드의 인수의 RemoteDevice 오브젝트로부터, 우선 RTP 통신에 이용하는 DatagramSocket 오브젝트를 생성한다. 또한 생성한 DatagramSocket 오브젝트와 인수의 RemoteDevice오브젝트로부터, RemoteDeviceUDP 오브젝트를 작성한다. InputStream이 얻어지지 않으면, 대응의 에러 코드를 설정한 ResponseInfo 오브젝트를 작성하고, 데이터 출력부(2803)의 메소드 sendMessage()를 호출해 단말에 송신한다.
다음에, RTSP 리퀘스트가 SETUP 완료된 URI에 대한 PLAY였던 경우, 그것이 방송 중인 채널에 대한 것이면, 우선, 200 OK의 리스폰스 메시지를 설정한 ResponseInfo 오브젝트를 생성하고, 데이터 출력부(2803)의 메소드 sendMessage()를 호출하여 단말에 송신한다. 계속해서, 상기에서 취득한 InputStream 오브젝트와, 상기에서 생성한 RTP 통신용의 RemoteDevice 오브젝트를 인수로 하여, 데이터 출력부(2803)의 메소드 sendMultimediaData()를 호출하고, 데이터 송신을 개시시킨다.
또, PLAY가 제2 메모리(1403)에 축적되어 있는 콘텐츠에 대한 것이면, 메소드 receiveRequest()가 되돌려 보낸 RequestInfo 오브젝트의 멤버 변수 extent Header를 조사하고, X-Restart가 있는지의 여부를 검색한다. X-Restart가 없는 경우, 혹은, 있어도 그 값이 「Yes」가 아닌 경우는, 다음에 멤버 변수 range의 값에 대응하는 쪽의 데이터를 건너뛰고 읽도록, SETUP시에 취득한 InputStream을 Seek 기능을 사용해 제어한다. 건너뛰고 읽은 데이터의 바이트수는 기억해 둔다.
또한, 200 OK의 레스폰스 메시지를 설정한 ResponseInfo 오브젝트를 생성하고, 데이터 출력부(2803)의 메소드 sendMessage()를 호출해 단말에 송신한다. 계속해서, InputStream 오브젝트와, SETUP시에 생성한 RTP 통신용의 RemoteDevice 오브젝트를 인수로 하여, 데이터 출력부(2803)의 메소드 sendMultimediaData()를 호출하고, 데이터 송신을 개시시킨다.
또, X-Restart가 있고 그 값이 「Yes」인 경우, 네트워크 라이브러리(1605e)는, 메소드 getPauseStatus()를 호출하여, 재개 위치 정보 테이블(2532)을 독출한다. 취득한 ReopenContentInfo 오브젝트 배열을 검색하고, 그 콘텐츠의 재개 위치 정보를 검색한다. 그 콘텐츠의 재개 위치 정보가 없는 경우는, 상기한 X-Restart가 없는 경우와 같은 처리를 행한다.
그 콘텐츠의 재개 위치 정보가 있으면, 그 ReopenContentInfo 오브젝트의 멤버 변수 rp의 값을 독출하고, 그 값으로 나타내어지는 바이트수의 데이터를 건너뛰고 읽도록, SETUP시에 취득한 InputStream을 Seek 기능을 사용해 제어한다. 건너뛰고 읽은 데이터의 바이트수는 기억해 둔다.
또한, 200 OK의 리스폰스 메시지를 설정한 ResponseInfo 오브젝트를 생성하고, 데이터 출력부(2803)의 메소드 sendMessage()를 호출하여 단말에 송신한다. 계속해서, InputStream 오브젝트와, SETUP시에 생성한 RTP 통신용의 RemoteDevice 오브젝트를 인수로 하여, 데이터 출력부(2803)의 메소드 sendMultimediaData()를 호출하고, 데이터 송신을 개시시킨다.
또한, 메소드 removePauseStatus()를 호출하여, 재개한 데이터 출력에 관한 재개 위치 정보를 재개 위치 정보 테이블(2532)로부터 삭제하고, 또 콘텐츠의 속성도 갱신시킨다. 또한, 이 삭제는, 유저로부터의 지시에 의해 행해지는 구성이어도 된다.
또한, 후술하는 방송 중인 콘텐츠를 네트워크 라이브러리(1605e)의 처리에 의해서 축적한 콘텐츠인 경우는, 재개해 모두 송신한 뒤에, 그 콘텐츠를 제2 메모리(1403)로부터 삭제하는 구성이어도 된다. 또, 이 멀티미디어 데이터의 삭제는, 유저로부터의 지시에 의해 행해지는 구성이어도 된다. 또, X-Restart의 값은, 데이터 출력 중단의 식별자로 하고, 그 콘텐츠의 식별자와, 데이터 출력 중단의 식별자로부터, 재개 위치 정보 테이블(25332)을 검색하는 구성이어도 된다. 또, 재개 위치 정보에 설정된 재개시의 송신처 단말로부터의 재개 요구에 대해서, 데이터 출력을 재개하고, 그 이외의 단말로부터 재개 요구가 있던 경우에는, 데이터 송신을 행하지 않거나, 선두 혹은 Range 헤더로 지정된 위치로부터의 데이터 송신을 행하는 구성이어도 된다.
다음에, RTSP 리퀘스트가, 데이터 송신에 대한 PAUSE였던 경우에 대해 설명한다. 우선, 제2 메모리(1403)에 축적한 콘텐츠의 송신에 대한 PAUSE의 경우, 네트워크 라이브러리(1605e)는, 데이터 출력부(2803)의 메소드 terminateTransfer()를 호출하여, 데이터 송신을 정지시키고, 송신 완료된 데이터수를 취득한다. 다음에, 기억해 둔 송신 전에 건너뛰고 읽은 데이터수와, 송신 완료된 데이터수의 합을 취함으로써, 재개시의 개시점을 구한다.
계속해서, 이 중단을 식별하는 식별자를 발행하고, 상기의 재개 개시점과 그 콘텐츠의 식별자로부터, ReopenContentInfo 오브젝트를 생성한다. 또한, 메소드 setPauseStatus()를 호출하여, 이 재개 위치 정보를 재개 위치 테이블(2532)로 추가함과 더불어, 그 콘텐츠의 속성 정보를 갱신한다. 또한, 200 OK의 리스폰스 메시지를 설정한 ResponseInfo 오브젝트를 생성하고, 데이터 출력부(2803)의 메소드 sendMessage()를 호출해 단말에 송신한다.
또, 방송 중인 채널에 대한 PAUSE의 경우는, 네트워크 라이브러리(1605e)는, 우선 데이터 출력부(2803)의 메소드 terminateTransfer()를 호출하여, 데이터 송신을 정지시킨다. 계속해서, 메소드 registerHandler()로 등록된 ServHandler를 실장한 핸들러의 메소드 notifyRecording()을 호출해 채널의 식별자를 부여하고, 그 콘텐츠의 축적을 의뢰하고, 콘텐츠의 식별자를 받는다.
계속해서, 이 중단을 식별하는 식별자를 발행하고, 받은 콘텐츠의 식별자로부터, ReopenContentInfo 오브젝트를 생성한다. 또한, 재개 위치는 파일의 선두이므로, 멤버 변수 rp는 0을 설정한다.
또한, 메소드 setPauseStatus()를 호출하여, 이 재개 위치 정보를 재개 위치 테이블(2532)로 추가함과 더불어, 그 콘텐츠의 속성 정보를 갱신한다. 또한, 200 OK의 리스폰스 메시지를 설정한 ResponseInfo 오브젝트를 생성하고, 데이터 출력부(2803)의 메소드 sendMessage()를 호출해 단말에 송신한다.
또한, 본 실시의 형태에서는, ServHandler의 메소드 notifyHandler()를 이용해 Java 애플리케이션에 축적을 의뢰했지만, 네트워크 라이브러리(1605e)가, IO(1605g)를 이용하여, 제2 메모리(1403)에 기록하고, 서비스 매니저(1604)에 그 콘텐츠의 식별자와 속성 정보의 작성을 의뢰하는 구성이어도 된다. 또, PAUSE 리퀘스트에 X-Keep-Pause-Status 헤더를 포함하고, 그 값이 「Yes」인 경우에만, 상기와 같은 재개 위치 정보의 작성을 행하는 구성이어도 된다. 또, PAUSE 리퀘스트에 확장 헤더로서, 출력 재개시의 송신처 단말이 지정되어 있고, RestartContentInfo 오브젝트의 멤버 변수 rterm으로 설정하는 구성이어도 된다.
다음에, RTSP 리퀘스트가 TEARDOWN이었던 경우, 멀티미디어 데이터를 송신 중이면, 데이터 출력부(2803)의 메소드 terminateTransfer()를 호출하고, 데이터 송신을 정지시킨다. 또한, SETUP시에 취득한 멀티미디어 데이터를 독출하는 InputStream 오브젝트를 close 한다. 또한, 200 OK의 리스폰스 메시지를 설정한 ResponseInfo 오브젝트를 생성하고, 데이터 출력부(2803)의 메소드 sendMessage()를 호출해 단말에 송신한다. 또한, true를 되돌려 보내고, 처리를 종료한다.
상기 이외의 RTSP 리퀘스트 혹은 부정한 리퀘스트를 받은 경우, 리퀘스트의 내용에 따른 에러 리스폰스 메시지를 설정한 ResponseInfo 오브젝트를 생성하고, 데이터 출력부(2803)의 메소드 sendMessage()를 호출해 단말에 송신한다.
다음에, 단말(1302) 및 단말(1303)에 대해 설명한다.
도 41은, 본 발명의 실시의 형태 2에 있어서의 단말(1302) 및 단말(1303)의 구성의 일례를 나타내는 블록도이다. 단말(1302) 및 단말(1303)은, 각각, 입력부(4101)와, 제1 메모리(4102)와, 제2 메모리(4103)와, 다중 분리부(4104)와, TS디코더(4105)와, 영상 출력부(4106)와, 음성 출력부(4107)와, 네트워크부(4108)와, CPU(4109)를 구비한다.
입력부(4101), 제1 메모리(4102), 제2 메모리(4103)는, 상기한 본 실시의 형태에 있어서의 데이터 출력 장치(1301)의 입력부(1401), 제1 메모리(1402), 제2 메모리(1403)와 같은 것이다. 또한, 단말(1302) 및 단말(1303)은, 제2 메모리(4103)에, 데이터 출력 장치(1301)로부터 수신한 콘텐츠 일람이나 EPG 데이터 등의, 멀티미디어 데이터의 식별자, 타이틀, 방송 일시, 방송 채널 등 프로그램 정보를 축적한다.
다중 분리부(4104)는, CPU(4109)로부터 MPEG 트랜스포트 스트림을 받고, C PU(4109)로부터 지정된 정보를 추출하고, CPU(4109)에 넘겨 준다. 또, MPEG 트랜스포트 스트림을 그대로 TS디코더(4105)에 넘겨 준다.
TS디코더(4105)는, CPU(4109)로부터, 음성 데이터, 영상 데이터의 식별자를 받는다. 또한, 다중 분리부(4104)로부터 받은 스트림으로부터, 받은 음성 데이터, 영상 데이터의 식별자에 대응하는 데이터를 추출한다. 추출한 영상 데이터를 영상 출력부(4106)에, 음성 데이터를 음성 출력부(4107)에, 각각 넘겨 준다.
영상 출력부(4106), 음성 출력부(4107)는, 상기한 본 실시의 형태에 있어서의 데이터 출력 장치(1301)의 영상 출력부(1408), 음성 출력부(1409)와 같은 것이다.
네트워크부(4108)는, 네트워크 인터페이스를 포함하고, CPU(4109)로부터 받은 데이터를, 네트워크 인터페이스가 접속된 네트워크의 물리 미디어에 따른 신호로 변환해 출력한다. 또, 네트워크 인터페이스로부터 신호를 수신하고, IP네트워크로 규정된 패킷으로 변환하고, CPU(4109)에 넘겨 준다.
CPU(4109)는, 제2 메모리(4103)가 기억하는 프로그램을 실행함으로써, 다중 분리부(4104), TS디코더(4105), 네트워크부(4109)를 제어한다.
도 42는, 본 발명의 실시의 형태 2에 관한 단말(1302) 및 단말(1303)의 각각에 유지되고, 실행되는 프로그램의 구성의 일례를 나타내는 도면이다. 본 도면은, 제2 메모리(4103)에 기억되고, CPU(4109)에 실행되는 프로그램의 구성의 일례를 나타낸다.
프로그램(4200)은, 복수의 서브 프로그램으로 구성되고, 구체적으로는 OS(4201), JavaVM(4202), 서비스 매니저(4203), Java 라이브러리(4204)로 구성된다.
OS(4201)는, 단말(1302) 및 단말(1303)의 전원이 투입되면, CPU(4109)가 기동하는 서브 프로그램이다. OS는, 오퍼레이팅 시스템의 약어이며, Linux 등이 일례이다. OS(4201)는, 다른 서브 프로그램을 평행하게 실행하는 커넬(4201a) 및 라이브러리(4201b)로 구성되는 공지의 기술의 총칭이며, 상세한 설명은 생략한다.
본 실시의 형태에 있어서는, OS(4201)의 커넬(4201a)은, JavaVM(4203)을 서브 프로그램으로서 실행한다. 또, 라이브러리(4201b)는, 이들 서브 프로그램에 대해서, 단말(1302) 및 단말(1303)이 유지하는 구성 요소를 제어하기 위한 복수의 기능을 제공한다.
본 실시의 형태에서는, 라이브러리(4201b)는 기능의 일례로서, 한정 해제(4201b1), AV재생(4202b2), NET(4201b3)를 포함한다.
한정 해제(4202b1)는, 다른 서브 프로그램이나 Java 라이브러리(4204)의 CA(4204c)로부터 정보를 받고, 네트워크로부터 수신한 암호화 데이터를 복호하거나, AV재생(4201b2)을 유효하게 하여, 네트워크로부터 수신한 멀티미디어 데이터의 재생을 허가하거나 하는 것이다.
AV재생(4202b2)은, 다른 서브 프로그램이나 Java 라이브러리(4204)의 JMF(4204a)로부터, 음성의 패킷 ID와 영상의 패킷 ID를 받는다. 받은 음성의 패킷 ID와 영상의 패킷 ID를, TS디코더(4105)에 부여한다. 이 결과, TS디코더(4105)는 부여된 패킷 ID에 의거하여, 필터링을 행하고, 영상·음성의 재생을 실현한다.
NET(4201b3)는, 다른 서브 프로그램이나 Java 라이브러리(4204)의 네트워크 라이브러리(4204d)로부터 받은 데이터를, IP네트워크로 규정되는 어플리케이션층보다 아래의 프로토콜의 패킷을 작성한다.
어플리케이션층보다 아래의 프로토콜이란, 예를 들면 TCP 패킷, UDP 패킷, IP 패킷 등이다. 이것을 네트워크부(4108)에 넘겨 줌으로써, 네트워크(1304)를 통해 다른 기기에 메시지 및 데이터를 송신한다.
또, 네트워크(1304)를 통해 다른 기기로부터의 메시지를 수신했을 때에, 다른 서브 프로그램이나 Java 라이브러리(4204)의 네트워크 라이브러리(4204d)에, 어플리케이션층의 프로토콜의 패킷으로 변환해 넘겨 준다. 어플리케이션층의 프로토콜이란, 예를 들면, HTTP, RTSP나 RTP 등이다.
JavaVM(4202)은, 상기한 본 실시의 형태에 있어서의 데이터 출력 장치(1301)의 JavaVM(1603)과 같은 것이다.
서비스 매니저(4203)는, 상기한 본 실시의 형태에 있어서의 데이터 출력 장 치(1301)의 서비스 매니저(1604)와, 이하의 차이점을 제외하고 같은 것이다.
서비스 매니저(1404)는 EPG(1602)의 재생부(1602b)로부터 채널 식별자를 받고, 그 식별자를 Tuner(1605c)에 넘겨 주고 튜닝시키고, 또한 CA(1605d)에 의뢰하여 디스크램블을 행하고, JMF(1605a)에 채널의 식별자를 부여하여 영상·음성의 재생을 의뢰하는 것이었지만, 서비스 매니저(4203)는, Java 라이브러리(4204) 중에 있는 List(4204i)로부터 콘텐츠의 식별자를 받고, 네트워크 라이브러리(4204d)에 콘텐츠의 식별자 및 그것을 축적하고 있는 장치 등의 정보를 넘겨 주고, 당해 장치로부터 스트림을 수신하고, 계속해서, Java 라이브러리(4204) 중에 있는 JMF(4204a)에 콘텐츠의 식별자를 부여함으로써, 영상·음성의 재생을 의뢰하는 것이다. List(4204i)에 대해서는, 후술한다.
서비스 매니저(4203)는, Java 라이브러리(4204) 중에 있는 네트워크 라이브러리(4204d)에, 콘텐츠의 식별자와 데이터 출력 장치(1301)의 IP 어드레스 등의 정보, 그 콘텐츠에 액세스하기 위한 URI 등의 정보를 부여하여, 데이터 출력 장치(1301)로의 멀티미디어 데이터 송신 요구 발행과 그 멀티미디어 데이터의 수신을 의뢰하고, 또한, 네트워크 라이브러리(4204d)에, 데이터 출력 장치(1301)로부터 송신된 멀티미디어 데이터의 수신을 의뢰한다. 네트워크 라이브러리(4204d)에서는, 의뢰를 받으면, 데이터 출력 장치(1301)와 접속하여, 멀티미디어 데이터의 송신 요구를 발행한다. 그리고, 네트워크 라이브러리(4204d)는, 데이터 출력 장치(1301)로부터 송신된 데이터를 CPU(4109)로 넘겨 준다. 이로 인해, 수신한 멀티미디어 데이터를 다중 분리부(4104)에 넘겨 주는 것이 가능해지고, 그 멀티미디어 데이터 의 재생을 행할 수 있다.
Java 라이브러리(4204)는, 제2 메모리(4103)에 저장되어 있는 복수의 Java 라이브러리의 집합이다. 본 실시의 형태에서는, Java 라이브러리(4204)는, JMF(4204a)와, AM(4204b)과, CA(4204c)와, 네트워크 라이브러리(4204d)와, 재생 Lib(4204e)와, List(4204i)를 포함하고 있다.
JMF(4204a)와, AM(4204b)과, 재생Lib(4204e)와, IO(4204f)와, AWT(4204g)와, SI(4204h)는, 각각, 상기한 본 실시의 형태에 있어서의 데이터 출력 장치(1301)의 Java 라이브러리(1605) 중의 JMF(1605a), AM(1605b), 재생 Lib(1605f), IO(1605g), AWT(1605h), SI(1605i)와 같은 것이다.
CA(4204c)는, 네트워크(1304) 경유로 송신되어 온 멀티미디어 데이터의 카피 제어 및 과금 등, 그 멀티미디어 데이터의 권리 처리를 관리하는 것이다. 카피 제어는, 송신되어 온 트랜스포트 스트림의 섹션 정보로 포함되어 있는 카피 제어 정보를 참조하여, 필요하면 개서를 행한다. 또, 과금 등은, 네트워크 라이브러리(4204d)를 통해, 데이터 출력 장치(1301)와 통신하는 것에 의해서 행한다.
List(4204i)는, 데이터 출력 장치(1301)에 있어서의 EPG나 데이터 출력 장치(1301)가 축적하고 있는 멀티미디어 콘텐츠의 일람을 표시하고, 입력부(4101)가 받은 유저 조작에 의해서, 일람으로부터 하나의 멀티미디어 콘텐츠를 선택하고, 서비스 매니저(4203)에 재생을 의뢰하는 것이다. 이때, 데이터 출력 장치(1301)의 정보도 서비스 매니저(4203)에 넘겨 준다. 또, 데이터 출력 장치(1301)에 있어서의 EPG 및 데이터 출력 장치에 축적된 콘텐츠의 일람은, 네트워크 라이브러 리(4204d)를 통해, 취득할 수 있다. 이러한 정보는, UPnP AV에 정의된 방법에 따라서 실현할 수 있기 때문에, 상세 설명은 생략한다.
네트워크 라이브러리(4204d)는, OS(4201b)의 NET(4201b3)를 통해, 네트워크(1304)에 접속된 데이터 출력 장치(1301)와 통신하는 것이다. 데이터 출력 장치(1301)와의 통신은, 멀티미디어 데이터의 일람 송수신, 및 멀티미디어 데이터의 송신 요구 발행과 그 멀티미디어 데이터의 수신이다.
도 43은, 네트워크 라이브러리(4204d)의 내부 구성의 일례를 나타내는 블록도이다.
네트워크 라이브러리(4204d)는, 제어부(4301), 정보 송신부(4302), 정보 수신부(4303), 판정부(4304), 데이터 수신부(4305)를 포함한다. 또한, 네트워크 라이브러리(4205d)는, IP네트워크에 관한 다른 기능을 포함해도 된다.
제어부(4301)는, 다운로드한 Java 애플리케이션에 대해서, 네트워크 라이브러리(4204d)가 실현하는 기능을 제공한다. 즉, 제어부(4301)는, 다운로드한 Java 애플리케이션에 대해서 Java API를 제공하고, Java 애플리케이션이 이 API를 호출함으로써, 네트워크를 이용한 기능을 실현할 수 있다.
제어부(4301)는, Java API가 호출되면, 적절히, 정보 송신부(4302), 정보 수신부(4303), 판정부(4304), 데이터 수신부(4305)나, 다른 Java 라이브러리(4204) 및 OS(4201)의 라이브러리(4201b)를 이용해 처리를 행한다.
도 44는, 네트워크 라이브러리(4204d)의 내부 구성에 포함되는 제어부(4301)가 제공하는 Java API의 일례를 나타내는 도면이다.
도 44(1) 메소드 collectNetDevice()는, 네트워크(1304)에 접속되어 있는 외부 장치의 정보를 모으고, 그 정보로서 NetDevice 오브젝트의 배열을 되돌려 보내고, 실패시는 null을 되돌려 보낸다. 본 메소드에 의해, 네트워크(1304)에 접속된 기기의 정보를 얻을 수 있다. NetDevice 클래스는 도 30에 나타낸 바와 같다. 본 메소드의 처리는, UPnP DA에 정의된 방법에 따라 행하는 것이 가능하기 때문에, 상세 설명은 생략한다.
도 44(2) 메소드 getMultimediaData()는, 인수 cont로 부여된 멀티미디어 데이터를, 인수 offset로 부여된 시간 위치로부터 수신하고, 인수 os로 부여된 OutputStream 오브젝트에 출력한다.
인수 os는, 수신한 멀티미디어 데이터를 CPU(4109)에 건네주는 역할을 하는 것이다. 인수 offset은, 선두를 0으로 한 시간 위치를 초단위로 부여하는 것이다. 또, 개시점을 지정하지 않는 경우는, 인수 offset에 음의 값을 부여한다. 이것은, 처리로서는, offset에 0이 주어진 경우와 같은 처리가 된다.
또한, 본 실시의 형태에 있어서는, 개시점만 인수로 부여하는 것으로 했지나, 인수를 추가하여, 종료점의 시간 위치도 부여해도 된다. 이 경우, 종료점을 지정하지 않을 때는, 그 인수에 음의 수를 부여하는 것으로 실현해도 된다. 또, RTSP를 사용한 데이터 통신의 제어를 행하고 있기 때문에 개시점 및 종료점은 시간 위치로 했지만, 다른 프로토콜, 예를 들면 HTTP의 경우, 개시점 및 종료점은 바이트 위치를 부여하는 것이어도 된다.
인수 cont는, ContentInfo 클래스의 오브젝트로서 부여된다.
도 45에, 네트워크 라이브러리(4204d)로 사용되는 ContentInfo 클래스의 구성의 일례를 나타내는 도면이다.
도 45에 있어서, 멤버 변수 dev는, 그 멀티미디어 데이터를 송신하는 장치를 Net Device 오브젝트로서 저장하는 것이다.
또, 멤버 변수 cid는, 그 멀티미디어 데이터의 콘텐츠의 식별자를 나타내는 것이다. 또, 멤버 변수 contentURI는, 그 멀티미디어 데이터에 액세스하기 위한 URI를 문자열로 저장하는 것이다. 또, 멤버 변수 title은 그 콘텐츠의 제목을 문자열로 저장하는 것이다. 또, 멤버 변수 gunre는, 영화 등과 같은, 그 콘텐츠의 종별을 문자열로 저장하는 것이다.
또, 멤버 변수 broadDate는, 그 콘텐츠가 방송된 일시를 문자열로 저장하는 것이다. 또, 멤버 변수 recDate는, 그 콘텐츠가 녹화·축적된 일시를 문자열로 저장하는 것이다. 또, 멤버 변수 lastPlayDate는, 지금까지 그 콘텐츠를 재생 혹은 데이터 출력 장치(1301)로부터 송신한 마지막 일시를 문자열로 나타내는 것이다.
또, 멤버 변수 isPaused는, 그 멀티미디어 데이터의 송신 혹은 재생이 도중에 중단된 상태인 경우는 true를, 그렇지 않은 경우는 false를 취하는 boolean형의 변수이다. 이러한 정보는, 데이터 출력 장치(1301)로부터 수신한 콘텐츠 일람 혹은 EPG 데이터에 포함되어 있는 것이며, 후술의 메소드 getContentList() 및 getEPGData()에 의해서 취득할 수 있다.
본 메소드는, 나중에 데이터의 수신에 관한 제어를 행하기 위해, 인수 cont로 부여된 정보, 및, 본 메소드에 의해 열린 RTSP 세션의 세션 번호와, 메시지의 시퀀스 번호를, 네트워크 라이브러리(4204d) 내부에서 기억·관리해 둔다.
또, 본 메소드에서는, 그 멀티미디어 데이터가 출력 중단 중인지의 여부를 판정하고, 출력 중단 중인 경우는, 본 메소드 전에, 후술의 setTransferMode()에 의해서 설정되어 있으면, 그 설정에 의해 재개하는지의 여부를 결정한다. 또, 설정되어 있지 않으면, 후술의 메소드 registerHandler()에 의해서 등록된 ClientHandler 인터페이스를 실장한 핸들러 오브젝트를 이용하여, Java 애플리케이션에, 그것을 통지한다.
Java 애플리케이션에서는, 유저에게 제시해 유저 입력을 받는 등하여, 중단한 데이터 출력을 재개하는지의 여부를 결정하고, 후술의 메소드 setTransferMode()를 이용해 네트워크 라이브러리(4204d)에 통지한다. 본 메소드의 상세에 대해서는, 후술한다.
도 44(3) 메소드 pausePlayback()은, Java 애플리케이션으로부터, 네트워크 라이브러리(4204d)로, 멀티미디어 데이터의 수신을 중단하는 의뢰를 내는 것이며, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다. 본 메소드가 호출되면, 네트워크 라이브러리(4204d)는, 후술하는 정보 송신부(4302)의 메소드 notifyPause() 혹은 notifyPauseForReopen()을 호출하여, PAUSE 리퀘스트 메시지를 송신한다.
이 경우, 상기의 RTSP 세션 번호와, 시퀀스 번호를 1개만 늘린 값을 인수로서 부여한다. 시퀀스 번호는 갱신된다. 그리고, 메소드 notifyPause()의 반환값을 되돌려 보낸다.
또, 도 44(4) 메소드 pauseForReopen()는, 후술의 정보 송신부(4302)의 메소드 notifyPauseForReopen()을 호출해 송신함으로써, 성공하면 true를 되돌려 보내고 실패하면 false를 되돌려 보낸다. 이 경우도 마찬가지로 상기의 RTSP 세션 번호와, 시퀀스 번호를 1개만 늘린 값을 인수로서 부여하고, 시퀀스 번호는 갱신된다.
메소드 pauseForReopen()는, 도 44(5)와 같이, NetDevice 오브젝트를 인수로 취하고, 인수로 부여된 장치를, 출력 재개시의 송신처로서 확장 헤더에 기술하는 PAUSE 리퀘스트를 작성해 송신하는 구성이어도 된다. 메소드 pausePlayback(), 메소드 pauseForReopen()의 처리의 상세에 대하여는 후술한다.
도 44(6) 메소드 registerHandler()는, 인수 handler로 부여된, ClientHandler 인터페이스를 실장한 오브젝트를 시스템에 등록하는 것으로, 성공하면 true를 되돌려 보내고, 실패하면 false를 되되돌려 보낸다. Java 애플리케이션은, 그 오브젝트를 핸들러로서 등록함으로써, 네트워크 라이브러리(4204d)로부터 콜백을 받을 수 있다.
도 46은, 네트워크 라이브러리(4204d)로 사용되는 ClientHandler 인터페이스의 구성의 일례를 나타내는 도면이다.
도 46에 있어서, ClientHandler 인터페이스의 메소드 norifyPause()는, 인수 cid로 부여된 식별자의 콘텐츠가 출력 중단 중인 것을, Java 애플리케이션에 통지하는 것이다.
Java 애플리케이션은, 후술의 메소드 setTransferMode()를 이용하여, 이 중 단을 재개하는 것인지, 혹은, 그 콘텐츠를 선두 혹은 유저가 지정한 위치로부터 취득하는 것인지를 설정하는 것이 가능해진다. Java 애플리케이션은, 유저에게 그 콘텐츠가 출력 중단 상태인 것을 제시하고, 유저에게 출력을 재개하는지의 여부를 문의하는 것이 가능하다. Java 애플리케이션은, 이러한 처리를 실시한 후, 처리의 성공 여부에 따라서 반환값을 되돌려 보내고, 네트워크 라이브러리(4204d)에 제어를 되돌려 보낸다.
또, 메소드 notifyPauseAction()은, 인수 cid로 나타내어지는 콘텐츠의 송신 중단을 행하는 것을, Java 애플리케이션에 통지하는 것이다.
Java 애플리케이션은, 이 중단을 후에 재개하는지의 여부를, 유저에게 제시해 문의하는 것이 가능하고, 그 내용을, 후술의 메소드 setReopenStatus()를 이용해, 이 중단을 후에 재개하는지의 여부를, 네트워크 라이브러리(4204d)에 통지하는 것이 가능해진다. Java 애플리케이션은, 이러한 처리를 행한 후, 처리의 성공 여부에 따라서 반환값을 되돌려 보내고, 네트워크 라이브러리(4204d)에 제어를 되돌려 보낸다.
또, 메소드 askReopenDevice()는, Java 애플리케이션에, 중단한 데이터 송신을 재개할 때의 출력처를 등록할지의 문의를 통지하는 것이다.
Java 애플리케이션은, 네트워크(1304)에 접속된 단말 등 재생 재개 가능한 장치의 일람을 유저에게 제시하고, 유저의 선택을 문의하는 것이 가능하다. 또, Java 애플리케이션은, 후술의 메소드 setReopenTerminal()에 의해서, 유저가 선택한 장치를 네트워크 라이브러리(4204d)에 통지하는 것이 가능해진다. Java 애플리 케이션은, 이러한 처리를 행한 후, 처리의 성공 여부에 따라서 반환값을 되돌려 보내고, 네트워크 라이브러리(4204d)에 제어를 되돌려 보낸다.
도 44(7) 메소드 setTransferMode()는, Java 애플리케이션으로부터, 네트워크 라이브러리(4204d)로, 인수 cid로 부여된 식별자의 콘텐츠에 대해, 출력 중단 중인 경우에, 중단 위치로부터의 송신을 재개할지, 또는, 선두 혹은 유저가 지정한 위치로부터 송신을 개시할지를, 인수 flag로 부여된 값으로부터 설정하는 것으로, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보내는 것이다. 인수 flag에서 0이 부여되면 출력 재개로 하고, 양의 값이 주어지면, 출력 재개가 아닌 선두 혹은 유저가 지정한 위치로부터의 데이터 취득이라고 판정한다.
또, 음의 값이 부여되면, 그 시점의 설정을 캔슬하고, 미설정 상태로 되돌려 보낸다. 본 메소드는, 상기의 ClientHandler의 메소드 notifyPauseContent()에 의한 콜백의 회답으로서 Java 애플리케이션으로부터 호출되는 경우 외에, 시스템으로 설정하는 경우에 이용된다. 이 설정은 제1 메모리(4102) 혹은 제2 메모리(4103)에 보존된다. 메소드 getMultimediaData()는, 본 메소드에 의한 설정에 따라서 동작한다.
도 44(8) 메소드 setReopenStatus()는, 인수 cid로 부여된 식별자의 콘텐츠의 데이터 송신을 중단할 때에, 그것을 후에 재개하는지 아닌지의 상태를 설정하는 것으로, 인수 flag가 0인 경우는 재개하는 것을 나타내고, 양의 값인 경우는 재개하지 않는 것을 나타낸다.
또, 음의 값인 경우는, 그 시점의 설정을 캔슬하고, 미설정 상태로 되돌려 보낸다. 처리가 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다. 본 메소드는, 상기의 ClientHandler의 메소드 notifyPauseAction()에 의한 콜백의 회답으로서 Java 애플리케이션으로부터 호출되는 경우 외에, 시스템으로 설정하는 경우에 이용된다. 이 설정은 제1 메모리(4102) 혹은 제2 메모리(4103)에 보존된다.
도 44(9) 메소드 setReopenTerminal()은, 인수 dev로 부여된 장치를, 인수 cid로 부여된 식별자의 콘텐츠의 데이터 송신을 중단하고, 그것을 재개할 때의 송신처로서 등록하는 것으로, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다.
인수 dev로 null이 부여된 경우는, 미설정 상태로 되돌려 보낸다. 상기의 ClientHandler의 메소드 askReopenDevice()에 따른 콜백의 회답으로서 Java 애플리케이션으로부터 호출되는 경우 외에, 시스템에 송신처로서 등록하는 경우에 이용된다. 이 설정은 제1 메모리(4102) 혹은 제2 메모리(4103)에 보존된다.
도 44(10) 메소드 getContentList()는, 인수 dev로 부여된 장치로부터, 콘텐츠 일람을 취득하여 ContentInfo 오브젝트의 배열로서 되돌려 보내는 것으로, 성공하면 그 배열을 되돌려 보내고, 실패하면 null을 되돌려 보낸다. 또, 인수 dev로 부여된 장치에, 네트워크(104)를 통해서 제공할 수 있는 콘텐츠가 없는 경우는, 요소수 0의 ContentInfo 오브젝트의 배열을 되돌려 보낸다. 이 처리에 있어서의 통신은, UPnP AV로 정의된 방법에 따라 실시할 수 있기 때문에, 자세한 것은 생략한다.
도 44(11) 메소드 getEPGData()는, 인수 dev로 부여된 장치로부터, EPG를 취득하여 ContentInfo 오브젝트의 배열로서 되돌려 보내는 것으로, 성공하면 그 배열을 되돌려 보내고, 실패하면 null을 되돌려 보낸다. 이 처리에 있어서의 통신은, UPnP AV로 정의된 방법에 따라 행할 수 있기 때문에, 자세한 것은 생략한다.
정보 송신부(4302)는, OS(4201)의 라이브러리(4201)의 NET(4201b3)를 통해서 네트워크부(4108)를 제어하고, 지정된 네트워크(1304)에 접속되어 있는 외부 기기로 RTSP의 리퀘스트 메시지의 송신을 행하는 것이다.
정보 송신부(4302)는, 네트워크 라이브러리(4204d) 및 다운로드한 Java 애플리케이션에 Java API를 제공한다.
도 47은, 네트워크 라이브러리(4204d)의 내부 구성에 포함되는 정보 송신부(4302)가 제공하는 Java API의 일례를 나타내는 도면이다.
도 47(1) 메소드 connectToServer()는, Socket 오브젝트 s를 생성하고, Socket 오브젝트 s를 이용해 인수 dev로 부여된 장치와 TCP 세션을 확립하여, Sock et 오브젝트 s와 인수 dev의 내용으로 RemoteDevice 오브젝트를 생성해 되돌려 보내는 것이며, 성공하면 그 RemoteDevice 오브젝트를 되되돌려 보내고, 실패하면 null을 되돌려 보낸다. RemoteDevice 클래스의 구성은, 도 30에 나타낸 것과 같다. 이 TCP 세션 상에서, RTSP 세션의 통신이 행해진다.
도 47(2) 메소드 sendData()는, 인수 dev로 부여된 외부 장치로, 인수 dev로 부여된 Socket 오브젝트를 이용하여, 인수 mes로 부여된 데이터를 송신하는 것이며, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다.
도 47(3) 메소드 sendRequestMessage()는, 인수 dev로 부여된 외부 장치로, 인수 dev로 부여된 Socket 오브젝트를 이용하여, 인수 req로 부여된 RTSP 리퀘스트 메시지를 생성해 송신하는 것이며, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다. 인수 req는 RequestInfo 클래스의 오브젝트로 부여된다. RequestInfo 클래스는 도 36에서 나타낸 것과 같다.
도 47(4) 메소드 notifyPlay()는, 인수 cont, seq, session, offset, restart로 부여된 정보로부터 RTSP의 PLAY 리퀘스트 메시지를 생성하고, 인수 dev로 부여된 장치에 송신하는 것으로, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다.
본 메소드는, 우선, RequestInfo 오브젝트 req를 생성한다. 그리고, req의 멤버 변수 requestType에, PLAY를 나타내는 1을 설정한다. 계속해서, 인수 seq와 인수 session으로 부여된 값을, 각각 req의 멤버 변수 seq, session으로 설정한다. 또한, 인수 cont로 부여된 ContentInfo 오브젝트로부터, 그 멤버 변수 contentURI를 독출하여, req의 멤버 변수 contentURI로 설정한다. 또한, 인수 offset이 0 이상인 값이면, 그 값으로부터 Range 헤더를 String 오브젝트로 생성하여, req의 멤버 변수 range로 설정한다.
또, 인수 restart가 true인 경우는, X-Restart 헤더를, 값을 「Yes」로서 작성하고, String 오브젝트를 작성해 거기에 저장한다. 또한, 필요에 따라서 확장 헤더 등 다른 헤더를 String 오브젝트로서 생성하고, req의 멤버 변수 extendHeader로 설정한다. 그리고, req와 인수 dev로 부여된 RemoteDevice 오브젝 트를 인수로 하여, 메소드 sendRequestMessage()를 호출함으로써, PLAY 리퀘스트 메시지를 송신한다.
도 47(5) 메소드 notifyPause()는, 인수 cont, seq, session으로 부여된 정보로부터 RTSP의 PAUSE 리퀘스트 메시지를 생성하고, 인수 dev로 부여된 장치에 송신하는 것으로, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다.
본 메소드는, 우선, RequestInfo 오브젝트 req를 생성한다. 그리고, req의 멤버 변수 requestType에, PAUSE를 나타내는 2를 설정한다. 계속해서, 인수 seq와 인수 session으로 부여된 값을, 각각 req의 멤버 변수 seq, session으로 설정한다. 또한, 인수 cont로 부여된 ContentInfo 오브젝트로부터, 그 멤버 변수 contentURI를 독출하여, req의 멤버 변수 contentURI로 설정한다. 또한, req의 멤버 변수 range는 null로 설정한다. 또한, 필요에 따라서 확장 헤더 등 다른 헤더를 String 오브젝트로서 생성하고, req의 멤버 변수 extendHeader로 설정한다. 그리고, req와, 인수 dev로 부여된 RemoteDevice 오브젝트를 인수로 하여, 메소드 sendRequ estMessage()를 호출함으로써, PAUSE 리퀘스트 메시지를 송신한다.
도 47(6) 메소드 notifyPauseForReopen()은, 인수 cont, seq, session으로 부여된 정보로부터, X-Keep-Pause-Status 헤더 부착의 RTSP의 PAUSE 리퀘스트 메시지를 생성하고, 인수 dev로 부여된 장치에 송신하는 것으로, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다. X-Keep-Pause-Status 헤더는, 후에 중단한 송신을 재개하는 것을 보다 명확하게 나타내는 목적으로 사용한다.
본 메소드는, 우선, RequestInfo 오브젝트 req를 생성한다. 그리고, req의 멤버 변수 requestType에, PAUSE를 나타내는 2를 설정한다. 계속해서, 인수 seq와 인수 session으로 부여된 값을, 각각 req의 멤버 변수 seq, session으로 설정한다. 또한, 인수 cont로 부여된 ContentInfo 오브젝트로부터, 그 멤버 변수 contentURI를 독출하여, req의 멤버 변수 contentURI로 설정한다. 또한, req의 멤버 변수 range는 null로 설정한다. 또한, X-Keep-Pause-Status 확장 헤더를, 그 값을 「Yes」로 하여 String 오브젝트로 생성한다. 또, 필요에 따라서 다른 확장 헤더 등 다른 헤더를 String 오브젝트로서 생성하고, 이것들을 String 오브젝트의 배열로서 req의 멤버 변수 extendHeader로 설정한다. 그리고, req와 인수 dev로 부여된 RemoteDevice 오브젝트를 인수로 하여, 메소드 sendRequestMessage()를 호출함으로써, PAUSE 리퀘스트 메시지를 송신한다.
도 47(7) 메소드 notifyPauseForReopen()은, 인수 cont, seq, session, rterm으로 부여된 정보로부터, 송신 재개시의 송신처 장치를 확장 헤더에 포함한 RTSP의 PAUSE 리퀘스트 메시지를 생성하고, 인수 dev로 부여된 장치에 송신하는 것으로, 성공하면 true를 되돌려 보내고, 실패하면 false를 되돌려 보낸다. 송신 재개시의 송신처 장치를 나타내는 확장 헤더로서, X-Reopen-Terminal을 이용하는 것으로 한다.
본 메소드는, 우선, RequestInfo 오브젝트 req를 생성한다. 그리고, req의 멤버 변수 requestType에, PAUSE를 나타내는 2를 설정한다. 계속해서, 인수 seq와 인수 session으로 부여된 값을, 각각 req의 멤버 변수 seq, session으로 설정한다. 또한, 인수 cont로 부여된 ContentInfo 오브젝트로부터, 그 멤버 변수 contentURI 를 독출하여, req의 멤버 변수 contentURI로 설정한다. 또한, req의 멤버 변수 range는 null로 설정한다. 또한, 확장 헤더 X-Reopen-Terminnal을 이용하여, 송신 재개시의 송신처 단말을 기술한 헤더를 String 오브젝트로 생성한다. 확장 헤더 X-Reopen-Terminal의 값은, 인수 rterm로부터 얻어지는, 그 단말의 IP 어드레스여도 되고, 그 단말의 호스트명이어도 되고, 그 단말에 붙인 닉네임이어도 된다. 닉네임은 NetDevice 오브젝트 rterm의 멤버 변수 friendly Name으로부터 얻어진다. 또한, 필요에 따라서 다른 확장 헤더 등 다른 헤더를 String 오브젝트로서 생성하고, 이것들을 String 오브젝트의 배열로서 req의 멤버 변수 extendHeader로 설정한다. 그리고, req와 인수 dev로 부여된 RemoteDevice 오브젝트를 인수로 하여, 메소드 sendRequestMessage()를 호출함으로써, PAUSE 리퀘스트 메시지를 송신한다. 본 메시지에는, X-Keep-Pause-Status 확장 헤더를 포함하는 구성이어도 된다.
정보 수신부(4303)는, OS(4201)의 라이브러리(4201)의 NET(4201b3)를 통해서 네트워크부(4108)를 제어하고, 지정된 네트워크(1304)에 접속되어 있는 외부 기기로부터의 RTSP의 리스폰스 메시지의 수신을 행하는 것이다.
정보 수신부(4303)는, 네트워크 라이브러리(4204d) 및 다운로드한 Java 애플리케이션에 Java API를 제공한다.
도 48은, 네트워크 라이브러리(4204d)의 내부 구성에 포함되는 정보 수신부(4303)가 제공하는 Java API의 일례를 나타내는 도면이다.
도 48(1) 메소드 receiveData()는, 인수 dev로 부여된 외부 장치로부터, 인수 dev로 부여된 Socket 오브젝트를 이용해 메시지를 수신하고, 그 메시지를 바이 트열로 되돌려 보내는 것이며, 성공하면 그 바이트열을 되돌려 보내고, 실패하면 null을 되돌려 보내는 것이다.
도 48(2) 메소드 receiveResponseMessage()는, 인수 dev로 부여된 외부 장치로부터, 인수 dev로 부여된 Socket 오브젝트를 이용하여, RTSP의 리스폰스 메시지를 수신하고, 그것을 해석해 ResponseInfo 오브젝트를 생성하여 되돌려 보내는 것이며, 성공하면 그 ResponseInfo 오브젝트를 되되돌려 보내고, 실패하면 null을 되돌려 보낸다. ResponseInfo 클래스는, 도 38에 나타낸 것과 같다.
본 메소드가 호출되면, 우선, 메소드 receiveData()를 호출하여, 리스폰스 메시지를 수신한다. 계속해서, ResponseInfo 오브젝트 res를 생성한다. 또한, 수신한 리스폰스 메시지를 해석하고, res의 멤버 변수 responseCode, seq, session을 설정한다. 또, 리스폰스 메시지에 Range 헤더가 포함되어 있으면, 그 헤더를 String 오브젝트로 하여, res의 멤버 변수 range로 설정한다. Seq 헤더, Session 헤더, Range 헤더 이외의 헤더가 있으면, 각 헤더마다, 하나의 String 오브젝트를 생성하여 설정하고, 그것들을 배열로 하여, res의 멤버 변수 headers로 설정한다. Seq 헤더, Session 헤더, Range 헤더 이외의 헤더가 없으면, res의 멤버 변수 headers는 null로 설정한다. 그리고, res를 되돌려 보낸다. 또, 부정한 리스폰스 메시지의 경우나 리스폰스 메시지의 수신에 실패한 경우는, null을 되돌려 보낸다.
판정부(4304)는, 콘텐츠의 속성 정보로부터, 그 콘텐츠가 출력 중단 중인 속성을 갖고 있는지의 여부를 판정하는 것이다.
판정부(4304)는, 네트워크 라이브러리(4204d) 및 다운로드한 Java 애플리케 이션에 Java API를 제공한다.
도 49는, 네트워크 라이브러리(4204d)의 내부 구성에 포함되는 판정부(4304)가 제공하는 JavaAPI의 일례를 나타내는 도면이다.
도 49(1) 메소드 isContentPause()는, 인수 cid에 의해서 부여된 식별자를 갖는 콘텐츠가, 출력 중단 중인지의 여부를 판정하는 것이며, 출력 중단 중으로 판정되면 true를 되돌려 보내고, 출력 중단 중이 아니라고 판정되거나, 처리에 실패하면 false를 되돌려 보낸다.
본 메소드가 호출되면, 네트워크 라이브러리(4204d)는, IO(4204f)를 이용하여, 제2 메모리(4103)에 기억되어 있는 콘텐츠 일람을 독출한다. 독출한 콘텐츠 일람으로부터, 인수 cid로 부여된 식별자를 갖는 콘텐츠를 검색한다. 검색한 콘텐츠의 속성 정보를 조사해 출력 중단 중인 속성이 있으면, true를 되돌려 보내고 종료하고, 출력 중단 중인 속성이 없으면 false를 되돌려 보내고 종료한다. 또, 제2 메모리(4103)로부터 콘텐츠 일람을 판독할 수 없거나, 혹은, 독출한 콘텐츠 일람에, 인수 cid로 부여된 식별자를 갖는 콘텐츠가 없는 경우는, false를 되돌려 보내고 종료한다.
도 49(2) 메소드 isContentPause()는, 인수에 ContentInfo 오브젝트를 갖는 구성이다. 본 메소드는, 인수로 부여된 ConentInfo 오브젝트의 콘텐츠가, 출력 중단 중인지의 여부를 판정하는 것이며, 출력 중단 중으로 판정되면 true를 되돌려 보내고, 출력 중단 중이 아니라고 판정되면 false를 되돌려 보낸다. 본 메소드는, 인수로 부여된 ContentInfo 오브젝트의 멤버 변수 isPause의 값을 되돌려 보낸다.
데이터 수신부(4305)는, OS(4201)의 라이브러리(4201)의 NET(4201b3)를 통해서 네트워크부(4108)를 제어하고, 지정된 네트워크(1304)에 접속되어 있는 외부 기기로부터 멀티미디어 데이터를 수신하는 것이다.
데이터 수신부(4305)는, 제어부(4301) 및 다운로드한 Java 애플리케이션에 Java API를 제공한다.
도 50은, 네트워크 라이브러리(4204d)의 내부 구성에 포함되는 데이터 수신부(4305)가 제공하는 Java API의 일례를 나타내는 도면이다.
도 50(1) 메소드 openRemoteProgram()은, 인수 dev로 부여된 장치로부터, 인수 cont로 부여된 콘텐츠의, 멀티미디어 데이터를 수신하는 통신로를 확보하고, RemoteProgram 오브젝트로 되돌려 보내는 것으로, 성공시에는 그 오브젝트가, 실패시에는 null이 되돌아간다.
도 51은, 네트워크 라이브러리(4204d)에서 사용되는 RemoteProgram 클래스의 구성의 일례를 나타내는 도면이다.
도 51에 있어서, 멤버 변수 session는, 이 멀티미디어 데이터 통신을 제어하는 RTSP 세션의 세션 번호를 나타낸다. 또, 멤버 변수 s는, 멀티미디어 데이터를 수신하는 RTP의 DatagramSocket 오브젝트를 나타낸다. 또, 메소드 getData()는, RTP에 의해 데이터를 수신하고, RTP 패킷으로부터 멀티미디어 데이터를 추출해 되돌려 보내는 것이다.
메소드 getData()는, 1회의 호출로, RTP 패킷 1개 분의 데이터를 되돌려 보낸다고는 할 수 없지만, 복수의 RTP 패킷을 묶어 되돌려 보내는 경우는, 반드시, 패킷 번호가 연속 구간의 데이터를 되돌려 보내는 것이다. 메소드 openRemoteProgram()이 호출되면, 네트워크 라이브러리(4204d)는, 인수 dev로 부여된 장치에, 인수 cont로 부여된 콘텐츠에 대한, RTSP의 SETUP 메시지를 송신한다. 그리고, 리스폰스 메시지를 받고, 해석하여, SETUP이 성공하고 있으면, RemoteProgram 오브젝트를 작성해 되돌려 보내고, 실패해 있으면 null을 되돌려 보낸다.
또, TCP 세션이 절단된 경우 등에 의해, SETUP 메시지를 송신할 수 없는, 혹은, 리스폰스 메시지를 수신할 수 없다는 등의 이상이 발생한 경우도 null을 되돌려 보낸다.
이하, 본 메소드의 처리에 대해서, 더 자세하게 설명한다. 우선, 본 메소드가 호출되면, RequestInfo 오브젝트 req를 생성한다. 그리고, req의 멤버 변수 requestType를, SETUP을 나타내는 0으로 설정한다. 멤버 변수 seq는 1로 설정한다.
또, SETUP 리퀘스트에서는, 아직 세션 번호는 할당되어 있지 않기 때문에, 멤버 변수 session은 임의의 값이 된다. 또한, 인수 cont로 부여된 ContentInfo 오브젝트로부터, 멤버 변수의 contentURI의 값을 독출하고, req의 멤버 변수 contentURI에 String 오브젝트로서 설정한다. SETUP에서는, Range 헤더는 송신하지 않기 때문에, req의 멤버 변수 range는 null로 해둔다.
또한, 멀티미디어 데이터를 수신하는 UDP의 포트 번호를 발행하고, 그 값을 기술하는 것으로 Transport 헤더를 생성하고, String 오브젝트를 생성하여, Transport 헤더의 문자열을 설정한다. 또한, 요소수가, Transport 헤더를 포함한 String 오브젝트만의 1개인 String 오브젝트의 배열을 생성하고, req의 멤버 변수 extentHeader로 설정한다.
그리고, req와 인수 dev로 부여된 RemoteDevice 오브젝트를 인수로 하여, 정보 송신부(4302)의 메소드 sendRequestMessage()를 호출하고, SETUP 메시지를 송신한다. 또한, 인수 dev로 부여된 RemoteDevice 오브젝트를 인수로 하여, 정보 수신부(4303)의 메소드 receiveResponseMessage()를 호출하고, 리스폰스 메시지를 수신해 ResponseInfo 오브젝트를 얻는다.
이 ResponseInfo 오브젝트를 res로 하면, 우선, res의 멤버 변수 responseCode를 조사하고, OK인 200인지의 여부를 조사한다. 200이 아니면 SETUP이 실패한 것을 나타내고, null를 되돌려 보내고 종료한다. 계속해서, RemoteProgram 오브젝트 rp를 생성한다.
rp의 멤버 변수 session에는, res의 멤버 변수 session의 값을 설정한다. 또, res의 멤버 변수 headers를 검색하고, Transport 헤더를 찾는다. Transport 헤더가 없으면, null을 되돌려 보내고 종료한다. Transport 헤더가 있으면, 거기로부터, server_port로 나타내어지는, 서버가 멀티미디어 데이터를 출력하는 포트 번호를 얻는다.
이 포트 번호와, 상기한 네트워크 라이브러리(4204d)가 데이터를 수신하는 포트번호와, 인수 dev로부터 얻어지는 서버의 정보로부터, DatagramSocket 오브젝트를 생성하여 서버와 connect하고, rp의 멤버 변수 s로 설정한다. 그리고, rp를 되돌려 보내고, 처리를 종료한다.
여기서, 제어부(4301)의 메소드 getMultimediaData()의 동작에 대해서, 보다 상세하게 설명한다. 본 메소드가 호출되면, 우선, 인수 cont로 부여된 콘텐츠 정보를 네트워크 라이브러리(4204d)로 기억, 관리한다.
네트워크 라이브러리(4204d)는, 계속해서, 인수 cont의 멤버 변수 dev를 인수에 부여함으로써, 정보 수신부(4302)의 메소드 connectToSever()를 호출하여, 데이터 출력 장치(1301)와 RTSP 메시지를 통신하는 TCP 세션을 확립하고, 반환값으로서 RemoteDevice 오브젝트를 받는다. 이 RemoteDevice 오브젝트를 rdev로 한다. rdev는, 네트워크 라이브러리(4304d)에 의해서 기억되어 관리된다.
또, 메소드 rdev는, registerHandler()에 의해서 등록된 핸들러 오브젝트를 이용한 콜백을 행하고, Java 애플리케이션에 부여하여, Java 애플리케이션이 관리하는 구성이어도 된다. 구체적으로는, 도 46에 나타낸 ClientHandler 인터페이스에 public boolean notifyRemote(RemoteDevice dev)라는 메소드를 추가하고, 인수에 rdev를 부여하여 호출함으로써, Java 애플리케이션에 부여하는 것이 가능해진다.
계속해서, rdev와 cont를 인수로 하여, 데이터 수신부(4305)의 메소드 openRemoteProgram()을 호출하고, RTSP 세션을 개시함과 더불어, 멀티미디어 데이터를 수신하는 RemoteProgram 오브젝트를 받는다. 이 RemoteProgram 오브젝트를 rp로 한다.
계속해서, cont를 인수로 하여 판정부(4304)의 메소드 isContentPause()를 호출함으로써, 그 멀티미디어 데이터가 출력 중단 중인지의 여부를 판정한다. 출력 중단 중이 아니라고 판정된 경우는, 정보 송신부(4302)의 메소드 notifyPlay()를 호출함으로써, 데이터 출력 장치(1301)에 PLAY 리퀘스트 메시지를 발행한다.
이 경우의 인수는, 제1 인수에는 rdev를, 제2 인수에는 cont를, 제3 인수에는 2를, 제4 인수에는 rp의 멤버 변수 session을, 제5 인수에는 인수 offset로 부여된 값을, 제6 인수에는 false를, 각각 이용한다.
제3 인수는, RTSP 세션의 시퀀스 번호이며, 1은 데이터 수신부(4305)의 메소드 openRemoteProgram() 중에서, SETUP에 이용되고 있다. 네트워크 라이브러리(4204d)는, 이 세션 번호를 기억해 관리하고, 메소드 notifyPlay()가 호출된 후는, 기억하고 있는 세션 번호는 2가 된다.
그 콘텐츠가 출력 중단 중이라고 판정된 경우, 네트워크 라이브러리(4204d)는, 우선, IO(4204f)를 이용해 제1 메모리(4102) 혹은 제2 메모리(4103)를 검색하고, 그 콘텐츠에 대해서 출력 재개를 하는지의 여부의 설정이 이루어지고 있는지를 검색한다.
출력 재개를 하지 않는다고 설정되어 있는 경우는, 상기와 같은 처리를 행하고, 정보 송신부(4302)의 메소드 notifyPlay()를 호출한다. 출력을 재개하면 설정되어 있던 경우는, 정보 송신부(4302)의 메소드 notifyPlay()를, 상기와 제5 인수와 제6 인수를 바꾸어 호출한다. 이 경우, 제5 인수에는 임의의 음의 값을, 제6 인수에는 true를 부여한다.
또, 출력 재개에 관해서 설정되어 있지 않은 경우는, 메소드 registerHandler()로 설정된 핸들러 h의 메소드 notifyContentPause()를 호출하고, Java 애플리케이션에 출력 중단 중인 콘텐츠인 것을 통지한다. 이 경우에, 인수는 cont의 멤버 변수 cid를 부여한다.
Java 애플리케이션은, 메소드 setTransferMode()에 의해서 설정을 행한 뒤, 제어를 네트워크 라이브러리(4204d)로 되돌려 보낸다. 네트워크 라이브러리(4204d)는, Java 애플리케이션에 의해서 행해진 설정에 따라, 상기와 같이, 정보 송신부(4302)의 메소드 notifyPlay()를 호출한다. 이때, Java 애플리케이션에 의해서 미설정이 된 경우는, 출력 재개를 행하지 않는다고 간주하기로 한다.
메소드 notifyPlay()를 호출한 후, 또한, 정보 수신부(4303)의 메소드 receive Response()를, 인수로서 rdev를 부여함으로써 호출하고, PLAY 리퀘스트에 대한 리스폰스 메시지를 수신하고, ResponseInfo 오브젝트를 받는다. 받은 ResponseInfo 오브젝트를 ri로 한다.
ri의 멤버 변수 responseCode를 조사하고, OK를 나타내는 200이면, rp의 메소드 get Data()를 호출하여, 데이터 출력 장치(1301)로부터 송신되어 온 데이터를 수신한다. rp의 메소드 getData()로부터 데이터를 받으면, 그것을 인수 os로 부여된 OutputStream에 출력하고, 이후, PAUSE 메시지를 발행하는 제어부(4301)의 메소드가 호출될 때까지, rp의 메소드 getData()의 호출과 수신한 데이터의 os로의 출력을 반복한다.
PAUSE 메시지를 발행하는 제어부(4301)의 메소드란, pausePlayback(), pa useForReopen()이며, 이것이 호출되면, 반복 루프 중에서 참조하는 플래그를 세트 하는 등 하여, 데이터 수신과 os로의 출력의 루프를 정지시킨다. 혹은, 본 메소드는 다른 스레드 혹은 프로세스를 생성하고 그 스레드 혹은 프로세스 상에서 동작하거나, 상기 루프만 다른 스레드 혹은 프로세스로 동작시키고, 예를 들면, 그 스레드 notifyTerminate()와 같은 메소드를 준비하여, 이 메소드에 의해서 통지하거나, 프로세스간 통신을 이용해 통지하는 구성이어도 된다. ri의 멤버 변수 responseCode가, 200이 아니면 false를 되돌려 보내고 처리를 종료한다.
또한, 메소드 getMultimediaData()의 인수 os에, IO(4204f)로부터 받은 제2 메모리(4103)의 파일로 출력하는 OutputStream을 부여하면, 본 메소드에 의해서, 멀티미디어 데이터를 제2 메모리(4103) 상으로 축적하는 것이 가능해진다.
다음에, 메소드 pausePlayback(), 메소드 pauseForReopen()의 처리에 대해 상세하게 설명한다.
메소드 pausePlayback()이 호출되었을 때에, 네트워크 라이브러리(4204d)는, 우선, IO(4204f)를 이용해 제1 메모리(4102) 혹은 제2 메모리(4103)를 검색하고, 그 콘텐츠의 데이터 송신 중단에 대해서 출력 재개를 행하는 지의 여부의 설정을 검색한다.
출력 재개를 행하지 않으면 설정되어 있는 경우는, 정보 송신부(4302)의 메소드 notifyPause()를 호출한다. 이 경우, 네트워크 라이브러리(4204d)가 관리하고 있는, 서버의 RemoteDevice 오브젝트, 데이터 수신을 행하고 있는 콘텐츠에 대응하는 ContentInfo 오브젝트, RTSP의 시퀀스 번호와 세션 번호를, 각각, 인수로서 부여한다.
또, 출력 재개를 행한다고 설정되어 있는 경우는, IO(4204f)를 이용해 제1 메모리(4102) 혹은 제2 메모리(4103)를 검색하고, 출력 재개시의 송신처 단말이 설정되어 있는지의 여부를 검색한다.
송신처 단말이 설정되어 있는 경우는, 도 47(7)의 메소드 notifyPauseForReopen()을 호출한다. 이때 부여하는 인수는, 네트워크 라이브러리(4204d)가 관리하고 있는, 서버의 RemoteDevice 오브젝트, 데이터 수신을 행하고 있는 콘텐츠에 대응하는 ContentInfo 오브젝트, RTSP의 시퀀스 번호와 세션 번호, 및 설정되어 있는 장치의 NetDevice 오브젝트이다.
송신처 단말이 설정되어 있지 않으면, 도 47(6)의 메소드 notifyPauseForReopen()이 호출된다. 이때 부여하는 인수는, 네트워크 라이브러리(4204d)가 관리하고 있는, 서버의 RemoteDevice 오브젝트, 데이터 수신을 행하고 있는 콘텐츠에 대응하는 ContentInfo 오브젝트, RTSP의 시퀀스 번호와 세션 번호이다.
또, 출력 재개에 대해 미설정인 경우는, 메소드 registerHandler()에 의해서 설정된 핸들러 오브젝트 h의 메소드 notifyPauseAction()을 호출하고, Java 애플리케이션에 송신 정지 처리를 행하는 것을 통지한다. 이때 부여되는 인수는 네트워크 라이브러리(4204d)가 관리하고 있는 ContentInfo 오브젝트의 멤버 변수 cid이다.
Java 애플리케이션에서는, 메소드 setReopenStatus()를 이용하여, 출력 재개의 설정 요구를 행하는지의 여부를 통지하고, 제어를 네트워크 라이브러리(4204d) 에 되돌려 보낸다. 네트워크 라이브러리(4204d)에서는, 설정된 내용에 기초하여, 상기와 같이, 정보 송신부(4302)의 메소드 notifyPauseForReopen()을 호출한다. 이때, Java 애플리케이션에 의해서, 미설정이 된 경우는, 출력 재개를 행하지 않는다고 간주하는 것으로 한다.
이상의 처리 후, 또한, 상기의 메소드 getMultimediaData()의 수신 동작을 정지시키는 처리를 행하고, 호출한 정보 송신부(4302)의 메소드 notifyPause() 혹은, notifyPauseForReopen()의 반환값을 되돌려 보내고, 처리를 종료한다.
또한, 출력 재개시의 단말이 설정되어 있지 않은 경우는, 핸들러 h의 메소드 notifyReopenDevice()를 호출하고, Java 애플리케이션에 통지하고, Java 애플리케이션은, 메소드 setReopenTerminal()을 이용해 출력처 단말을 설정하는 구성이어도 된다. 이 경우, Java 애플리케이션에 의해서 출력처 단말이 미설정이 된 경우는, 출력처 단말의 지정을 행하지 않는다고 간주하는 것으로 한다.
도 47(6) 메소드 notifyPauseForReopen()은, 상기 메소드 pausePlayback()에 있어서, 출력 재개를 행한다고 설정되어 있는 경우의 처리와 같다.
또, 도 47(7) 메소드 notifyPauseForReopen()은, 상기 메소드 pausePlayback()에 있어서, 출력 재개를 행한다고 설정되어 있고, 또한, 출력처 단말이 설정되어 있는 경우와, 이하의 점을 제외한 처리를 행한다.
차이점은, 상기 pausePlayback()에서는, 도 47(7) 메소드 notifyPauseForReopen()을 호출할 때, 제5 인수로서 설정된 출력처 단말의 NetDevice 오브젝트를 이용했지만, 본 메소드에서는, 인수 dev로 부여된 NetDevice 오브젝트를 이용하는 것이다.
이상, 설명한 바와 같이, 실시의 형태에 관한 멀티미디어 배포 시스템(1305)을 구성하는 데이터 출력 장치(1301)는, 데이터 출력 중에 단말로부터 데이터 출력 중단 요구를 받으면, 출력을 중단한 멀티미디어 데이터 및 출력 중단 위치로부터 얻어지는 재개 위치 정보를 장치 내부에 기억하고, 단말로부터의 데이터 출력 재개 요구와 출력처 단말을 받으면, 기억한 재개 위치 정보를 독출하여, 데이터 출력을 재개하는 것이다.
또, 본 실시의 형태에 관한 단말(1302) 및 단말(1303)은, 어느 멀티미디어 데이터가, 데이터 출력 장치(1301)에 있어서, 출력 중단 중이라고 판정한 경우에, 데이터 출력 재개 요구와 출력처 단말을 송신함으로써, 데이터 출력 장치(1301)에, 데이터 출력을 재개시키는 기기 제어부(1501)를 포함하는 것이다. 이 구성에 의해, 예를 들면, 단말(1302)에서, 어느 멀티미디어 콘텐츠의 시청을 중단하고, 단말(1303)에서, 그 멀티미디어 콘텐츠의 시청을, 중단한 위치로부터 재개하는 등이 가능해진다.
(실시의 형태 2의 변형예)
본 발명의 실시의 형태 2에 대해 설명해 왔지만, 본 발명은, 상기의 실시의 형태 2에 한정되는 것은 아니다. 이하와 같은 경우도, 본 발명에 포함된다.
(1)데이터 출력 장치(1301)는, 데이터 출력을 중단할 때에 발행한, 이 중단을 식별하는 식별자를, 콘텐츠 일람에 포함시키는, SETUP 리퀘스트의 리스폰스에 확장 헤더로서 포함시키는 등의 방법에 따라 단말에 송신하고, 데이터 출력 재개 요구와 함께 이 식별자를 수신했을 때에, 데이터 출력을 재개하는 구성이어도 된다. 이 식별자의 통신은, PLAY 리퀘스트 메시지에 확장 헤더를 설치하는 것이어도 되고, X-Restart 헤더의 값으로서 사용해도 된다. 이 경우, 데이터 출력 장치(1301)는, 확장 헤더 X-Restart가 있으면, 출력 재개라고 판정하고, 그 중단의 식별자와 콘텐츠의 식별자로 재개 위치 정보를 검색한다.
또, 단말(1302) 및 단말(1303)의 기기 제어부(1501)는, 상기 식별자를 취득했을 때, 데이터 출력 재개 요구와 함께, 상기 식별자를 송신하는 구성이어도 된다.
또, 상기 식별자를, 출력 중단 중인 속성값으로서 이용해도 된다. 즉, 도 26에 있어서, PAUSE 요소의 내용을, 이 식별자로 설정하고, PAUSE 요소가 있고, 또한 그 내용이 기술되어 있는 경우는 출력 중단 상태이며, PAUSE 요소가 없거나, PAUSE 요소가 있어도 내용을 갖지 않는 요소인 경우는, 출력 중단 상태가 아니라고 해도 된다.
또, 데이터 출력 장치(1301)가 출력하는 콘텐츠 일람에서 출력 중단을 나타내는 속성의 값으로서, 상기의 식별자를 이용하는 것으로 해도 된다.
또, 데이터 출력 장치(1301)는, 상기 식별자를 데이터 출력 중단 요구의 회답으로 단말로 회신하고, 콘텐츠 일람에는, 상기 식별자를 포함시키지 않는 구성이어도 된다. 이 경우는, 식별자를 알고 있는 유저만이, 출력을 재개할 수 있기 때문에, 시큐러티 향상 등의 효과가 얻어진다.
또, 상기 식별자는, 단말로부터 데이터 출력 장치(1301)에 제공되는 것이어 도 된다. 또한, 데이터 출력 장치(1301)는, 콘텐츠 일람에는, 상기 식별자를 포함시키지 않는 구성이어도 된다. 이 경우도, 똑같이 식별자를 알고 있는 유저만이, 출력을 재개할 수 있기 때문에, 시큐러티 향상 등의 효과가 얻어진다.
또, 데이터 출력 장치(1301)는, 상기 식별자를, 중단한 일시나, 중단한 단말과 세트로 하여 관리하는 구성이어도 된다.
(2)단말(1302) 및 단말(1303)은, 데이터 출력 중단 요구를 송신할 때에, 데이터 출력 재개시의 출력처도 송신하는 구성이며, 데이터 출력 장치(1301)는, 재개 위치 정보와 함께 상기 출력처를 기억부(1407)에 보존하고, 그 데이터의 데이터 출력 재개 요구를 받았을 때에, 상기 출력처로 그 데이터를 출력하는 구성이어도 된다.
이 경우의 데이터 출력 중단 요구의 일례로서는, 상기 실시의 형태에 있어서의 PAUSE 리퀘스트 메시지에, 확장 헤더 X-Reopen-Terminal을 추가하고, 그 값으로 해서 특정 단말을 기술하는 것이다. 출력처로서는, 단말의 IP 어드레스여도 되고, 각 단말의 호스트명이어도 되고, 각 단말에 붙인 닉네임이어도 된다. 이러한 정보는, UPnP DA에 정의된 방법에 따라 취득 가능하다.
또, 데이터 출력 장치(1301)는, 데이터 출력 중단 요구와 더불어, 데이터 출력 재개시의 출력처를 수신한 경우, 당해 출력처인 단말로부터의 요구에 따라서만, 데이터 출력을 재개하는 구성이어도 된다.
또, 데이터 출력 장치(1301)는, 데이터 출력 중단 요구와 더불어, 데이터 출력 재개시의 출력처를 수신한 경우, 데이터 출력 재개 요구와 더불어 출력처도 수 신하고, 기억하고 있는 출력처와 조합하여, 일치한 경우만, 데이터 출력을 재개하는 구성이어도 된다.
(3)상기 실시의 형태에 있어서는, 데이터 출력 장치(1301)는, 디지털 방송을 수신하는 STB로 했지만, 거기에 한정하는 것은 아니다. 튜너를 갖지 않고, 네트워크로부터 콘텐츠를 수신해 축적하는 구성이어도 된다. 이 경우의 구성은 도 41과 같은 것이 된다. 또, 네트워크 이외의 부위에 의해서 데이터를 축적하는 구성이어도 된다.
(4)또, 상기에 있어서는, 데이터 출력 중단 요구를 받았을 때에, 잇따르는 데이터를 제2 메모리(1403)에 기록하는 것으로 했지만, 데이터 출력 중단 요구를 기다리지 않고, 미리, 그 멀티미디어 데이터의 선두로부터 제2 메모리(1403)에 기록해 두는 구성이어도 된다.
이 경우, 출력 재개 위치 정보는, 상기 실시의 형태에 있어서의 제2 메모리(1403)에 축적한 콘텐츠와 같은 방법에 따라 작성하는 것이 가능하다.
또, 데이터 출력 장치(1301)는, TS멀티플렉서(1410)의 출력인 멀티미디어 데이터 중, 항상 일정 시간 혹은 일정 용량 분의 데이터를, 제1 메모리(1402) 혹은 도시하지 않은 버퍼 영역에 넣어 두고, 데이터 출력 중단 요구를 받았을 때에, 이 버퍼 영역에 있는 데이터를 포함해 기록하는 것으로 해도 된다. 또, 데이터 출력 재개 위치를, 이 버퍼 영역에 있는 데이터를 포함해 산출해도 되고, 포함하지 않아도 된다.
(5)데이터 출력 장치(1301)는, 또한, 데이터 출력 장치(1301) 상에서의 재생 을 중단한 멀티미디어 데이터에 대해서, 재개 위치 정보를 생성하여 기록하는 구성이어도 된다.
이 구성에 있어서도, 상기 실시의 형태와 같은 처리에 의해, 데이터 출력 장치(1301)에서의 재생을 중단하고, 단말(1302) 혹은 단말(1303)로 그 데이터 출력 재개를 행하는 것, 및, 단말(1302) 혹은 단말(1303)로의 출력을 중단하고, 데이터 출력 장치(1301) 상의 재생으로서 재개하는 것, 등이 가능해진다.
(6)상기 실시의 형태에 있어서는, 데이터 출력 장치(1301)가 재개 위치 정보를 기억하는 것으로 했지만, 네트워크 상의 제3의 기기가 기억해 두는 구성이어도 된다.
도 52는, 본 발명의 실시의 형태 2의 제6의 변형예에 있어서의 멀티미디어 배포 시스템의 구성을 나타내는 도면이다.
도 52에 나타내는 멀티미디어 배포 시스템(5206)은, 데이터 출력 장치(5201)와, 네트워크를 통해서 데이터 출력 장치 및 단말을 제어하는 제어 장치(5202)와, 제1의 단말(5203)과, 제2의 단말(5304)과, 네트워크(5205)를 구비한다. 데이터 출력 장치(5201), 제어 장치(5202), 단말(5203) 및 단말(5204)은, 네트워크(5205)에 접속되어 있고, 네트워크(5205)를 통해 서로 통신 가능하다.
데이터 출력 장치(5201)는, 네트워크(5205)를 통해서 송신된, 제어 장치(5202), 단말(5203) 및 단말(5204)로부터의 요구를 수신한다. 그리고, 요구에 따라 축적하고 있는 콘텐츠마다의 정보나 속성을, 네트워크(5205)를 통해서 제어 장치(5202)로 송신하고, 또, 요구에 따라 축적하고 있는 콘텐츠의 멀티미디어 데이 터를, 네트워크(5205)를 통해서 단말(5203) 및 단말(5204)로 송신하는 것이다.
또, 멀티미디어 데이터의 송신은, 요구에 따라 임의의 장소로부터 송출하는 것이 가능하다.
데이터 출력 장치(5201)는, 실행 중인 데이터 출력에 대해서, 제어 장치(5202) 혹은 송신처 단말로부터 중단 요구를 수신하면, 마지막에 송신한 데이터 위치의 다음의 위치와 같은 출력을 재개하는 데이터 위치와, 그 멀티미디어 데이터의 파일명 혹은 URI를, 제어 장치(5202)로 네트워크(5205)를 통해서 송신하는 것이다. 또한, 후술한 대로, 반드시, 이 경우에 그 멀티미디어 데이터의 파일명 혹은 URI를 송신하지 않아도 된다.
제어 장치(5202)는, 유저의 요구에 따라서 동작하는 것이다. 제어 장치(5202)는, 네트워크(5205)를 통해서, 단말(5203) 및 단말(5204)을 제어하고, 데이터 출력 장치(5201)로부터 멀티미디어 데이터를 수신시키고, 재생시키는 제어를 행한다. 이러한 제어는 UPnP AV에 정의된 방법에 의해 가능하기 때문에, 자세한 것은 생략한다.
또, 데이터 출력 장치(5201)로 요구함으로써, 콘텐츠의 타이틀 등과 같은 정보나 속성을 수신하고, 단말(5203), 단말(5204) 혹은 제어 장치(5202) 자신의 표시부에 의해서, 유저에게 제시한다.
또, 유저로부터 재생 중단의 요구를 받았을 때, 제어 장치(5202)는, 그 재생을 실행 중의 단말(5203) 혹은 단말(5204)을 제어하고, 데이터 출력 장치(5201)로 데이터 송신 중단 요구를 송신시킴과 더불어, 재생을 중단시킨다. 또한, 제어 장 치(5202)는, 데이터 출력 장치(5201)와 통신하여, 출력을 재개시키는 데이터 위치와, 그 멀티미디어 데이터의 파일명 혹은 URI와 같은, 그 데이터를 특정할 수 있는 정보를 수신하고, 재개 위치 정보로서 제어 장치(5202) 내에 기억한다.
재개 위치 정보는, 상기 실시의 형태 2의 것과 같은 것을 이용하는 것이 가능하다.
또한, 그 멀티미디어 데이터의 URI는, 제어 장치(5202)가 재생 요구를 발행할 때에 이용하기 때문에, 재생 중단시에는 기존이며, 반드시, 재생 중단시에 데이터 출력 장치로부터 수신하지 않아도 된다. 제어 장치(5202)는, 또한, 유저로부터 재생 재개 요구와 재생하는 단말이 지정되면, 상기 재개 위치 정보를 독출하고, 그 단말에 재개 위치로부터의 데이터를 데이터 출력 장치(5201)로부터 수신시켜 재생시킨다.
단말(5203) 및 단말(5204)은, 제어 장치(5202)로부터 네트워크(5205)를 통해 송신되는 요구에 따라서, 지정 서버로부터, 지정 멀티미디어 데이터의, 지정 범위의 데이터를 수신하고, 재생, 표시하는 것이다.
네트워크(5205)는, 상기 실시의 형태에 있어서의 네트워크(1304)와 같은 것이다.
이상 설명한 대로, 본 구성의 멀티미디어 배포 시스템(5206)에서는, 제어 장치(5202)가 재개 위치 정보를 관리함으로써, 예를 들면, 단말(5203)에서 행하고 있던 멀티미디어 콘텐츠의 재생을 중단하고, 단말(5204)에서 재개하는 등이 가능해진다.
또한, 여기에서는, 제어 장치(5202)는, 데이터 출력 장치(5201)로부터 적어도 출력을 재개시키는 데이터 위치를 수신하여 재개 위치 정보를 작성하는 것으로 했지만, 데이터 출력 장치(5201)가 재개 위치 정보를 작성하고, 제어 장치(5202)는 그것을 수신해 보존하는 구성이어도 된다.
또, 여기에서는, 제어 장치(5202)는, 데이터 출력 장치(5201)로부터 적어도 출력을 재개시키는 데이터 위치를 수신하여, 재개 위치 정보를 작성하는 것으로 했지만, 재생을 행하고 있던 단말(5203) 혹은 단말(5204)로부터, 적어도 마지막에 재생한 데이터 위치 등을 수신하고, 재개 위치 정보를 작성하는 구성이어도 된다.
또, 여기에서는, 제어 장치(5202)가, 단말(5203) 혹은 단말(5204)에 요구를 발행하고, 단말로부터 데이터 출력 장치(5201)로 데이터 송신 요구를 송신하는 구성으로 했지만, 제어 장치(5202)가, 데이터 출력 장치(5201)로 단말(5203) 혹은 단말(5204)로의 데이터 송신 요구를 발행하고, 또한, 그 단말로는, 데이터 출력 장치(5201)로부터의 데이터 수신 요구를 발행하는 구성이어도 된다. 이러한, 데이터 전송 제어는, FTP(File Transfer Protoco1)에 의해서 행하는 것이 가능하다.
또, 여기에서는, 네트워크 상의 독립의 제어 장치(5202)가, 재개 위치 정보를 보존한다고 했지만, 네트워크 상의 임의의 기억부를 갖는 기기가 재개 위치 정보를 보존하고, 데이터 출력 장치, 기기 제어 장치, 단말 중 어느 하나가, 그 재개 위치 정보를 취득, 해석한다고 해도 된다.
(7)상기의 실시의 형태 2에 있어서는, 데이터 전송의 프로토콜로서 RTP/RTSP을 이용하고 있지만, HTTP 등, 다른 프로토콜을 이용해 행해도 된다. HTTP를 이용 하는 경우의 데이터 출력 중단 요구는, HTTP-GET의 세션을 차단함으로써 행해도 되고, 별도의 세션의 통신으로 행해도 된다. 또, HTTP를 이용하는 경우의 데이터 출력 재개 요구는, HTTP-GET에 상기의 X-Restart와 같은 독자 확장 헤더를 이용해 행해도 된다.
(8)상기의 실시의 형태 2에 있어서는, 송신 재개 위치로서, 마지막 송신 완료된 데이터의 다음의 데이터 위치로 했지만, 특정수의 데이터를 거슬러 올라간 위치로 해도 된다. 또, 멀티미디어 데이터가 MPEG2 복호화 데이터인 경우, 1 프레임, MPEG2-TS에 있어서의 PAT, 등, 복호하는데 불가결한 것으로서, 송신 완료된 데이터 중 마지막인 것의 선두 등으로 해도 된다. 또, 멀티미디어 데이터가 다른 부호화 데이터라도, 마찬가지이다.
(9)상기의 각 장치를 구성하는 구성 요소의 일부 또는 전부는, 1개의 시스템 LSI(Large Scale Integration:대규모 집적회로)로부터 구성되어 있다고 해도 된다. 시스템 LSI는, 복수의 구성부를 1개의 칩 상에 집적하여 제조된 초다기능 LSI이며, 구체적으로는, 마이크로 프로세서, ROM, RAM 등을 포함해 구성되는 컴퓨터 시스템이다. 상기 RAM에는, 컴퓨터 프로그램이 기억되어 있다. 상기 마이크로 프로세서가, 상기 컴퓨터 프로그램에 따라서 동작함으로써, 시스템 LSI는, 그 기능을 달성한다.
(10)상기의 각 장치를 구성하는 구성 요소의 일부 또는 전부는, 각 장치에 탈착 가능한 IC 카드 또는 단체의 모듈로부터 구성되어 있다고 해도 된다. 상기 IC카드 또는 상기 모듈은, 마이크로 프로세서, ROM, RAM, 등으로 구성되는 컴퓨터 시스템이다. 상기 IC카드 또는 상기 모듈은, 상기의 초다기능 LSI를 포함한다고 해도 된다. 마이크로 프로세서가, 컴퓨터 프로그램에 따라서 동작함으로써, 상기 IC 카드 또는 상기 모듈은, 그 기능을 달성한다. 이 IC 카드 또는 이 모듈은, 내탬버성을 갖는다고 해도 된다.
(11)본 발명의 데이터 출력 장치, 기기 제어 장치는, 상기에 나타내는 방법이라고 해도 된다. 또, 이러한 방법을 컴퓨터에 의해 실현하는 컴퓨터 프로그램이라고 해도 되고, 상기 컴퓨터 프로그램으로 이루어지는 디지털 신호라고 해도 된다.
또, 본 발명의 데이터 출력 장치, 기기 제어 장치는, 상기 컴퓨터 프로그램 또는 상기 디지털 신호를 컴퓨터 판독 가능한 기록 매체, 예를 들면, 플랙시블 디스크, 하드 디스크, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD(Blu-ray Disc), 반도체 메모리 등에 기록한 것으로 해도 된다. 또, 이들 기록 매체에 기록되어 있는 상기 컴퓨터 프로그램 또는 상기 디지털 신호라고 해도 된다.
또, 본 발명의 데이터 출력 장치, 기기 제어 장치는, 상기 컴퓨터 프로그램 또는 상기 디지털 신호를, 전기 통신 회선, 무선 또는 유선 통신 회선, 인터넷을 대표로 하는 네트워크, 데이터 방송 등을 경유해 전송하는 것으로 해도 된다.
또, 본 발명의 데이터 출력 장치, 기기 제어 장치는, 마이크로 프로세서와 메모리를 구비한 컴퓨터 시스템으로서, 상기 메모리는, 상기 컴퓨터 프로그램을 기억하고 있고, 상기 마이크로 프로세서는, 상기 컴퓨터 프로그램에 따라서 동작한다고 해도 된다.
또, 상기 프로그램 또는 상기 디지털 신호를 상기 기록 매체에 기록해 이송함으로써, 또는 상기 프로그램 또는 상기 디지털 신호를 상기 네트워크 등을 경유해 이송함으로써, 독립한 다른 컴퓨터 시스템에 의해 실시한다고 해도 된다.
(12)상기 실시의 형태 2 및 상기 변형예를 각각 조합한다고 해도 된다.
본 발명에 관한 데이터 출력 장치, 기기 제어 장치 및 멀티미디어 배포 시스템은, 네트워크를 통한 멀티미디어 콘텐츠의 재생 등에 관한 데이터의 통신에 있어서, 중단한 데이터 통신을, 수신하는 단말이나 장치를 변경했다고 해도, 적확하게 재개하는 것이 가능하다고 하는 뛰어난 효과를 갖기 때문에, 홈 네트워크 등의 네트워크 환경에 있어서의 멀티미디어 콘텐츠의 서버 장치, 수신 단말, 기기 제어 장치, 데이터 출력 방법, 기기 제어 방법 등으로서 유용하다.

Claims (28)

  1. 영상 및 음성 중 적어도 한쪽을 포함하는 멀티미디어 데이터를 출력하는 데이터 출력 장치로서,
    외부의 장치로부터 신호를 수신하는 수신 수단과,
    멀티미디어 데이터를 축적하고 있는 축적 수단과,
    상기 축적 수단으로부터 데이터를 독출하는 독출 수단과,
    상기 멀티미디어 데이터를 지정된 출력처로 출력하는 출력 수단과,
    상기 출력 수단에 의한 출력을 중단한 멀티미디어 데이터와, 당해 멀티미디어 데이터의 출력을 재개하는 위치를 나타내는 재개 위치 정보를 기억하고 있는 기억 수단과,
    상기 수신 수단에 의해, 상기 출력 수단에 의한 출력을 중단하는 요구인 중단 요구가 수신된 경우에, 상기 재개 위치 정보를 생성하고, 생성한 상기 재개 위치 정보를 상기 기억 수단에 기억시키고, 상기 수신 수단에 의해 상기 출력 수단에 의한 출력을 재개하는 요구인 재개 요구와 출력처가 수신된 경우에, 상기 재개 위치 정보를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를 상기 축적 수단으로부터 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터를, 상기 출력 수단에 의해, 상기 출력처로 출력시키는 제어 수단을 구비하는 것을 특징으로 하는, 데이터 출력 장치.
  2. 청구항 1에 있어서,
    상기 데이터 출력 장치는, 네트워크를 통해 복수의 단말에 접속되어 있고,
    상기 출력 수단은, 지정된 상기 복수의 단말 중 어느 하나를 출력처로 하여 출력하는 것을 특징으로 하는, 데이터 출력 장치.
  3. 청구항 1에 있어서,
    상기 출력 수단은, 상기 멀티미디어 데이터를, 복수의 출력처 중 어느 하나에 출력하고,
    상기 제어 수단은, 상기 수신 수단에 의해, 상기 재개 요구와 상기 복수의 출력처 중 어느 하나가 수신된 경우에, 상기 재개 위치 정보를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터를, 상기 출력 수단에 의해, 상기 수신 수단에 의해 수신된 출력처로 출력시키는 것을 특징으로 하는, 데이터 출력 장치.
  4. 청구항 1에 있어서,
    상기 제어 수단은,
    상기 수신 수단에 의해 상기 중단 요구가 수신된 경우에, 상기 재개 위치 정보와, 상기 중단 요구를 식별하는 중단 식별자를 생성하고, 생성한 상기 재개 위치 정보와 상기 중단 식별자를 상기 기억 수단에 기억시키고,
    상기 수신 수단에 의해 상기 재개 요구와, 상기 출력처와, 상기 중단 식별자가 수신된 경우에, 상기 중단 식별자에 대응하는 상기 재개 위치 정보를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터를, 상기 출력 수단에 의해, 상기 출력처로 출력시키는 것을 특징으로 하는, 데이터 출력 장치.
  5. 청구항 1에 있어서,
    상기 출력 수단은, 상기 멀티미디어 데이터를, 복수의 출력처 중 어느 하나에 출력하고,
    상기 제어 수단은, 상기 재개 요구와, 상기 중단 신호를 수신했을 때의 출력처와는 다른 제2의 출력처가 수신된 경우에, 상기 재개 위치 정보를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독출 수단에 독출시키고, 독출시킨 멀티미디어 데이터를, 상기 출력 수단에 의해, 상기 제2의 출력처로 출력시키는 것을 특징으로 하는, 데이터 출력 장치.
  6. 청구항 1에 있어서,
    외부의 장치로부터 멀티미디어 데이터를 수신하는 데이터 수신 수단과,
    상기 데이터 수신 수단이 수신한 멀티미디어 데이터를 상기 축적 수단에 기록하는 기록 수단을 더 구비하고,
    상기 제어 수단은, 또한,
    상기 데이터 수신 수단이 수신하면서, 멀티미디어 데이터를 출력 수단이 출력하고 있을 때, 상기 중단 요구를 수신한 경우에, 상기 데이터 수신 수단에 상기 멀티미디어 데이터의 계속을 수신시키고, 수신시킨 상기 멀티미디어 데이터의 계속을 상기 기록 수단에 의해서, 상기 축적 수단에 기록시키고,
    상기 수신 수단에 의해 상기 재개 요구와 상기 출력처가 수신된 경우에, 상기 기록 수단에 의해서 상기 축적 수단에 기록된 상기 멀티미디어 데이터의 계속을 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터의 계속을, 상기 출력 수단에 의해, 상기 출력처로 출력시키는 것을 특징으로 하는, 데이터 출력 장치.
  7. 청구항 1에 있어서,
    멀티미디어 데이터를 재생하는 재생 수단을 더 구비하고,
    상기 출력 수단은, 상기 멀티미디어 데이터를, 복수의 출력처 및 상기 재생 수단 중 어느 하나에 출력하고,
    상기 제어 수단은, 또한,
    상기 출력 수단이 상기 재생 수단에 출력하고 있을 때, 상기 수신 수단에 의해, 상기 중단 신호가 수신된 경우에, 상기 재개 위치 정보를 생성하고, 상기 생성 한 상기 재개 위치 정보를 상기 기억 수단에 기억시키는 것을 특징으로 하는, 데이터 출력 장치.
  8. 청구항 7에 있어서,
    외부의 장치로부터 멀티미디어 데이터를 수신하는 데이터 수신 수단과,
    상기 데이터 수신 수단이 수신한 멀티미디어 데이터를 상기 축적 수단에 기록하는 기록 수단을 더 구비하고,
    상기 제어 수단은, 또한,
    상기 데이터 수신 수단이 수신하면서, 멀티미디어 데이터를 출력 수단이 상기 재생 수단에 출력하고 있을 때, 상기 중단 요구를 수신한 경우에, 상기 데이터 수신 수단에 상기 멀티미디어 데이터의 계속을 수신시키고, 수신시킨 상기 멀티미디어 데이터의 계속을 상기 기록 수단에 의해서, 상기 축적 수단에 기록시키고,
    상기 수신 수단에 의해 상기 재개 요구가 수신된 경우에, 상기 기록 수단에 의해서 상기 축적 수단에 기록된 상기 멀티미디어 데이터의 계속을 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터의 계속을, 상기 출력 수단에 의해, 상기 출력처로 출력시키는 것을 특징으로 하는, 데이터 출력 장치.
  9. 멀티미디어 데이터를 축적하고 있는 축적 수단을 구비하는 장치에서 실행되고, 영상 및 음성 중 적어도 한쪽을 포함하는 멀티미디어 데이터를 출력하는 데이터 출력 방법으로서,
    외부의 제어 장치로부터의 신호를 수신하는 수신 단계와,
    상기 축적 수단으로부터 데이터를 독출하는 독출 단계와,
    상기 멀티미디어 데이터를 지정된 출력처로 출력하는 출력 단계와,
    상기 수신 단계에서, 상기 출력 단계에 의한 출력을 중단하는 요구인 중단 요구가 수신된 경우에, 상기 출력 단계에 의한 출력을 중단한 멀티미디어 데이터와 출력을 중단한 위치로부터 얻어지고, 출력을 재개하는 위치를 나타내는 재개 위치 정보를 생성하며, 생성한 상기 재개 위치 정보를 기억 수단에 기억시키고,
    상기 수신 단계에서, 상기 출력 단계에서의 출력을 재개하는 요구인 재개 요구와 출력처가 수신된 경우에, 상기 재개 위치 정보를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독출 단계에서 독출시키고, 독출시킨 상기 멀티미디어 데이터를, 상기 출력 단계에서, 상기 출력처로 출력시키는 제어 단계를 포함하는 것을 특징으로 하는, 데이터 출력 방법.
  10. 청구항 1에 있어서,
    Java(등록상표) 애플리케이션을 실행하는 Java 실행 수단을 더 구비하고,
    상기 제어 수단은, Java 애플리케이션에 의해서 기동되는 것을 특징으로 하는 데이터 출력 장치.
  11. 청구항 10에 있어서,
    상기 출력 수단은, 상기 멀티미디어 데이터를, 복수의 출력처 중 어느 하나에 출력하고,
    상기 제어 수단은, 상기 재개 요구와, 상기 중단 신호를 수신했을 때의 출력원(元)과는 다른 제2의 출력처가 수신된 경우에, 상기 재개 위치 정보를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터를, 상기 출력 수단에 의해, 상기 출력원과는 다른 출력처로 출력시키는 것을 특징으로 하는, 데이터 출력 장치.
  12. 청구항 10에 있어서,
    상기 데이터 출력 장치는, 네트워크를 통해 복수의 단말에 접속되어 있고,
    상기 출력 수단은, 유저에 의해 지정된 상기 복수의 단말 중 어느 하나에, 상기 네트워크를 통해 출력하는 것을 특징으로 하는, 데이터 출력 장치.
  13. 청구항 10에 있어서,
    상기 제어 수단은,
    상기 수신 수단에 의해 상기 중단 요구가 수신된 경우에, 상기 재개 위치 정보와, 상기 중단 요구를 식별하는 중단 식별자를 생성하고, 생성한 상기 재개 위치 정보와 상기 중단 식별자를 상기 기억 수단에 기억시키고,
    상기 수신 수단에 의해 상기 재개 요구와, 상기 출력처와, 상기 중단 식별자 가 수신된 경우에, 상기 중단 식별자에 대응하는 상기 재개 위치 정보를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터를, 상기 출력 수단에 의해, 상기 출력처로 출력시키는 것을 특징으로 하는, 데이터 출력 장치.
  14. 청구항 10에 있어서,
    상기 제어 수단은, 또한,
    상기 수신 수단에 의해 상기 중단 요구와, 출력을 재개할 때의 출력처가 수신된 경우에, 상기 재개 위치 정보를 생성하고, 상기 생성한 상기 재개 위치 정보와 상기 출력처를 상기 기억 수단에 기억시키고,
    상기 수신 수단에 의해 상기 재개 요구가 수신된 경우에, 상기 재개 위치 정보와 상기 출력처를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터를, 상기 기억 수단으로부터 독출된 상기 출력처로, 상기 출력 수단에 의해 출력시키는 것을 특징으로 하는, 데이터 출력 장치.
  15. 청구항 10에 있어서,
    외부의 장치로부터 멀티미디어 데이터를 수신하는 데이터 수신 수단과,
    상기 데이터 수신 수단이 수신한 멀티미디어 데이터를 상기 축적 수단에 기록하는 기록 수단을 더 구비하고,
    상기 제어 수단은, 또한,
    상기 데이터 수신 수단이 수신하면서, 멀티미디어 데이터를 출력 수단이 출력하고 있을 때, 상기 중단 요구를 받은 경우에, 상기 데이터 수신 수단에 상기 멀티미디어 데이터의 계속을 수신시키고, 수신시킨 상기 멀티미디어 데이터의 계속을 상기 기록 수단에 의해서, 상기 축적 수단에 기록시키고,
    상기 수신 수단에 의해 상기 재개 요구와 상기 출력처가 수신된 경우에, 상기 기록 수단에 의해서 상기 축적 수단에 기록된 상기 멀티미디어 데이터의 계속을 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터의 계속을, 상기 출력 수단에 의해, 상기 출력처로 출력시키는 제어를 행하는 것을 특징으로 하는, 데이터 출력 장치.
  16. 청구항 10에 있어서,
    멀티미디어 데이터를 재생하는 재생 수단을 더 구비하고,
    상기 출력 수단은, 상기 멀티미디어 데이터를, 복수의 출력처 및 상기 재생 수단 중 어느 하나로 출력하고,
    상기 제어 수단은, 또한,
    상기 출력 수단이 상기 재생 수단에 출력하고 있을 때, 상기 수신 수단에 의해, 상기 중단 신호가 수신된 경우에, Java 애플리케이션으로부터, 상기 출력 수단 에서 상기 재생 수단으로의 출력을 중단한 멀티미디어 데이터의 재개 위치 정보를 받아서, 상기 기억 수단에 기억시키고,
    Java 애플리케이션으로부터 멀티미디어 데이터의 식별자를 받아서, 상기 기억 수단에 기억시킨 멀티미디어 데이터의 재개 위치 정보를 상기 Java 애플리케이션에 넘겨 주는 것을 특징으로 하는, 데이터 출력 장치.
  17. 청구항 16에 있어서,
    외부의 장치로부터 멀티미디어 데이터를 수신하는 데이터 수신 수단과,
    상기 데이터 수신 수단이 수신한 멀티미디어 데이터를 상기 축적 수단에 기록하는 기록 수단을 더 구비하고,
    상기 제어 수단은, 또한,
    상기 데이터 수신 수단이 수신하면서, 멀티미디어 데이터를 출력 수단이 상기 재생 수단에 출력하고 있을 때, 상기 중단 요구를 수신한 경우에, Java 애플리케이션으로부터의 지시에 의해, 상기 데이터 수신 수단에 상기 멀티미디어 데이터의 계속을 수신시키고, 수신시킨 상기 멀티미디어 데이터의 계속을 상기 기록 수단에 의해서, 상기 축적 수단에 기록시키고,
    기록시킨 데이터의 재생 위치 정보를 생성해 상기 기억 수단에 기억시키고,
    상기 수신 수단에 의해 상기 재개 요구가 수신된 경우에, 상기 기록 수단에 의해서 상기 축적 수단에 기록된 상기 멀티미디어 데이터의 계속을 상기 독출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터의 계속을, 상기 출력 수단에 의 해, 상기 출력처로 출력시키는 것을 특징으로 하는, 데이터 출력 장치.
  18. 멀티미디어 데이터를 축적하는 축적 수단과,
    재개 위치 정보를 기억하는 기억 수단과,
    Java 애플리케이션을 실행하는 Java 실행 수단과,
    Java 애플리케이션에 의해서 기동되는 제어 수단을 구비한,
    네트워크에 접속된 장치에서 실행되고, 영상 및 음성 중 적어도 한쪽을 포함하는 멀티미디어 데이터를 출력하는 데이터 출력 방법으로서,
    상기 네트워크에 접속된 외부의 제어 장치로부터 메시지를 수신하는 수신 단계와,
    상기 축적 수단으로부터 멀티미디어 데이터를 독출하는 독출 단계와,
    상기 멀티미디어 데이터를, 지정된 출력처에, 상기 네트워크를 통해 출력하는 출력 단계와,
    상기 수신 단계에서, 상기 출력 단계에 의한 출력을 중단하는 요구인 중단 요구가 수신된 경우에, 상기 출력 단계에 의한 출력을 중단한 멀티미디어 데이터와 출력을 중단한 위치로부터 얻어지고, 출력을 재개하는 위치를 나타내는 재개 위치 정보를 생성하며, 생성한 상기 재개 위치 정보를 기억 수단에 기억시키고,
    상기 수신 단계에서, 상기 출력 단계에서의 출력을 재개하는 요구인 재개 요구와 출력처가 수신된 경우에, 상기 재개 위치 정보를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독출 단계에서 독출시키고, 독출시킨 상기 멀티미디어 데이터를, 상기 출력 단계에서, 상기 출력처로 출력시키는 제어 단계를 포함하는 것을 특징으로 하는, 데이터 출력 방법.
  19. 영상 및 음성 중 적어도 한쪽을 포함하는 멀티미디어 데이터를 출력하는 데이터 출력 장치에 요구를 발행하는 기기 제어 장치로서,
    상기 데이터 출력 장치에 요구를 송신하는 송신 수단과,
    상기 데이터 출력 장치에 의한 멀티미디어 데이터의 출력을 중단하는 요구인 중단 요구를 상기 데이터 출력 장치로 보낼 때에, 상기 데이터 출력 장치가 데이터 출력을 재개하는 경우의 출력처를 특정하고, 특정한 상기 출력처를 상기 송신 수단에 의해 송신시키는 제어 수단을 구비하는 것을 특징으로 하는, 기기 제어 장치.
  20. 청구항 19에 있어서,
    Java 애플리케이션을 실행하는 Java 실행 수단을 더 구비하고,
    Java 애플리케이션으로부터 상기 중단 요구를 받으면, 상기 중단 요구를 상기 데이터 출력 장치로 보낼 때에, 상기 데이터 출력 장치가 데이터 출력을 재개하는 경우의 출력처를 특정하고, 특정한 상기 출력처를 상기 송신 수단에 의해 송신시키는 것을 특징으로 하는, 기기 제어 장치.
  21. 청구항 19에 있어서,
    Java 애플리케이션을 실행하는 Java 실행 수단을 구비하고,
    상기 제어 수단은, Java 애플리케이션으로부터 상기 중단 요구와 출력 재개시의 출력처를 받으면, 상기 중단 요구를 상기 데이터 출력 장치로 보낼 때에, 상기 송신처를 상기 송신 수단에 의해 송신시키는 것을 특징으로 하는, 기기 제어 장치.
  22. 영상 및 음성 중 적어도 한쪽을 포함하는 멀티미디어 데이터를 제공하는 데이터 출력 장치와 네트워크를 통해 접속되고, 유저의 조작에 의해서 동작하는 기기 제어 장치로서,
    상기 데이터 출력 장치로부터 제공되는 콘텐츠의 속성을 수신하는 속성 수신 수단과,
    상기 데이터 출력 장치에 요구를 송신하는 송신 수단과,
    유저의 조작에 의거하여, 콘텐츠 데이터의 출력을 재개하는 요구인 재개 요구를 받았을 때에, 상기 속성 수신 수단이 수신한 그 콘텐츠의 속성으로부터, 그 콘텐츠의 출력이 중단되어 있는지의 여부를 판정하고, 그 콘텐츠의 출력이 중단되어 있다고 판정한 경우에, 상기 송신 수단에 상기 재개 요구를 상기 데이터 출력 장치로 송신시키는 제어 수단을 구비하는 것을 특징으로 하는, 기기 제어 장치.
  23. 청구항 22에 있어서,
    상기 속성 수신 수단은, 콘텐츠 개별의 출력 중단을 나타내는 식별자를 포함 하는 상기 콘텐츠의 속성을 수신하고,
    상기 제어 수단은, 출력 중단의 상태라고 판정한 경우에, 상기 송신 수단에 상기 재개 요구와 상기 식별자를 상기 데이터 출력 장치에 송신시키는 것을 특징으로 하는, 기기 제어 장치.
  24. 청구항 22에 있어서,
    Java 애플리케이션을 실행하는 Java 실행 수단을 더 구비하고,
    상기 제어 수단은, Java 애플리케이션으로부터 상기 재개 요구를 받았을 때에, 상기 속성 수신 수단이 수신한 그 콘텐츠의 속성으로부터, 그 콘텐츠가 출력 중단의 상태인지의 여부를 판정하고, 출력 중단의 상태라고 판정한 경우에, 상기 송신 수단에 상기 재개 요구를 상기 데이터 출력 장치로 송신시키는 것을 특징으로 하는, 기기 제어 장치.
  25. 청구항 24에 있어서,
    상기 제어 수단은, 출력 중단의 상태라고 판정한 경우에, 또한, Java 애플리케이션에 중단되어 있는 출력을 재개할지의 여부를 문의하고, Java 애플리케이션으로부터 재개한다고 지시를 받으면, 상기 송신 수단에 상기 재개 요구를 상기 멀티미디어 서버에 송신시키는 것을 특징으로 하는, 기기 제어 장치.
  26. 네트워크에 접속되고, 영상 및 음성 중 적어도 한쪽을 포함하는 멀티미디어 데이터를 출력하는 데이터 출력 장치를 제어하는 기기 제어 장치로서,
    상기 데이터 출력 장치로 출력 중단 요구를 냈을 때에, 출력을 중단한 멀티미디어 데이터와, 당해 멀티미디어 데이터의 출력을 중단한 위치로부터 얻어지고, 출력을 재개하는 위치를 나타내는 재개 위치 정보를 기억하고 있는 기억 수단과,
    상기 데이터 출력 장치와 통신하는 통신 수단과,
    상기 데이터 출력 장치로부터 상기 재개 위치 정보를 수신해 상기 기억 수단에 기억시키고,
    상기 데이터 출력 장치로 출력 재개 요구를 내는 경우에, 상기 기억 수단이 기억하고 있는 상기 재개 위치 정보 및 출력처를 상기 데이터 출력 장치로 송신하는 제어 수단을 구비하는 것을 특징으로 하는, 기기 제어 장치.
  27. 청구항 26에 있어서,
    Java 애플리케이션을 실행하는 Java 실행 수단을 더 구비하고,
    상기 제어 수단은, Java 애플리케이션으로부터 상기 데이터 출력 장치로 중단 요구를 받았을 때에, 상기 통신 수단에 의해, 상기 데이터 출력 장치로 중단 요구를 송신하고, 출력을 중단한 멀티미디어 데이터 및 출력 중단 위치로부터 얻어지는 재개 위치 정보를, 상기 통신 수단에 의해 상기 데이터 출력 장치로부터 수신해 상기 기억 수단에 기억시키고,
    Java 애플리케이션으로부터 상기 데이터 출력 장치로 재개 요구를 받았을 때에, 상기 기억 수단에 기억한 상기 재개 위치 정보를 독출하고, 출력 재개 요구 및 출력처와 함께 상기 재개 위치 정보를, 상기 통신 수단에 의해 상기 데이터 출력 장치로 송신시키는 것을 특징으로 하는, 기기 제어 장치.
  28. 영상 및 음성 중 적어도 한쪽을 포함하는 멀티미디어 데이터를 출력하는 데이터 출력 장치와, 출력된 상기 멀티미디어 데이터를 수신하는 복수의 단말이 네트워크를 통해 접속되어 있는 멀티미디어 배포 시스템으로서,
    상기 데이터 출력 장치는,
    상기 기기 제어 장치로부터 신호를 수신하는 수신 수단과,
    멀티미디어 데이터를 축적하고 있는 축적 수단과,
    상기 축적 수단으로부터 데이터를 독출하는 독출 수단과,
    상기 멀티미디어 데이터를 지정된 상기 단말에 출력하는 출력 수단과,
    상기 출력 수단에 의한 출력을 중단한 멀티미디어 데이터와, 당해 멀티미디어 데이터의 출력을 중단한 위치로부터 얻어지고, 출력을 재개하는 위치를 나타내는 재개 위치 정보를 기억하고 있는 기억 수단과,
    상기 수신 수단에 의해, 상기 출력 수단에 의한 출력을 중단하는 요구인 중단 요구가 수신된 경우에, 상기 재개 위치 정보를 생성하고, 생성한 상기 재개 위치 정보를 상기 기억 수단에 기억시키고, 상기 수신 수단에 의해 상기 출력 수단에 의한 출력을 재개하는 요구인 재개 요구와 출력처가 수신된 경우에, 상기 재개 위치 정보를 상기 기억 수단으로부터 독출하고, 당해 재개 위치 정보에 의해 나타내어지는 재개 위치로부터의 멀티미디어 데이터를, 상기 축적 수단으로부터 상기 독 출 수단에 독출시키고, 독출시킨 상기 멀티미디어 데이터를, 상기 출력 수단으로부터, 상기 출력처로 출력시키는 제어 수단을 구비하고,
    상기 단말은,
    상기 데이터 출력 장치로 요구를 송신하는 송신 수단과,
    상기 데이터 출력 장치에 의한 멀티미디어 데이터의 출력을 중단하는 요구인 중단 요구를 상기 데이터 출력 장치로 보낼 때에, 상기 데이터 출력 장치가 데이터 출력을 재개하는 경우의 출력처를 특정하고, 특정한 상기 출력처를 상기 송신 수단에 의해 송신시키는 제어 수단을 구비하는 것을 특징으로 하는 멀티미디어 배포 시스템.
KR1020087014727A 2005-12-20 2006-12-06 데이터 출력 장치, 기기 제어 장치 및 멀티미디어 배포시스템 KR20080078838A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JPJP-P-2005-00367003 2005-12-20
JP2005367003 2005-12-20
JP2005376596 2005-12-27
JPJP-P-2005-00376596 2005-12-27

Publications (1)

Publication Number Publication Date
KR20080078838A true KR20080078838A (ko) 2008-08-28

Family

ID=38188461

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087014727A KR20080078838A (ko) 2005-12-20 2006-12-06 데이터 출력 장치, 기기 제어 장치 및 멀티미디어 배포시스템

Country Status (5)

Country Link
US (1) US20090300231A1 (ko)
JP (1) JPWO2007072680A1 (ko)
KR (1) KR20080078838A (ko)
CA (1) CA2633582A1 (ko)
WO (1) WO2007072680A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101368136B1 (ko) * 2012-04-10 2014-02-28 주식회사 엘지유플러스 콘텐츠 심리스 제공 방법, 장치, 및 기록 매체

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101455020A (zh) * 2006-05-29 2009-06-10 京瓷株式会社 发送装置和发送速率控制方法
JP2009124445A (ja) * 2007-11-14 2009-06-04 Toshiba Corp 多チャンネル録画再生サーバとその制御方法
US8055784B2 (en) * 2008-07-07 2011-11-08 Disney Enterprises, Inc. Content navigation module for managing delivery of content to computing devices and method therefor
JP5396821B2 (ja) * 2008-11-05 2014-01-22 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US8244829B2 (en) * 2009-03-25 2012-08-14 Panasonic Corporation Data transmitting apparatus, data receiving apparatus, data transmitting method and data receiving method
CN102447959A (zh) * 2010-10-01 2012-05-09 日立民用电子株式会社 接收机
ITTO20110272A1 (it) * 2011-03-28 2012-09-29 Istituto Superiore Mario Boella Sul Le Tecnologie Procedimento per il controllo remoto di un set top box
US9489488B2 (en) * 2011-09-23 2016-11-08 Roche Diabetes Care, Inc. Protocol independent interface supporting general communications interface debugging and testing tool
KR101964927B1 (ko) * 2012-07-17 2019-04-03 삼성전자 주식회사 캐싱 프록시 방법 및 장치
KR20140039504A (ko) * 2012-09-24 2014-04-02 삼성전자주식회사 블루레이 디스크 재생 장치 및 블루레이 디스크 로딩 방법
CN103065662A (zh) * 2013-01-22 2013-04-24 中兴通讯股份有限公司 一种媒体资源在设备中续播的方法及系统
JP6520242B2 (ja) * 2015-03-12 2019-05-29 ソニー株式会社 情報処理装置、通信システム、情報処理方法およびプログラム
KR102485166B1 (ko) * 2015-09-22 2023-01-06 엘지전자 주식회사 디스플레이 장치 및 그의 동작 방법
US10362354B2 (en) 2017-10-26 2019-07-23 Rovi Guides, Inc. Systems and methods for providing pause position recommendations
US10057630B1 (en) 2017-10-26 2018-08-21 Rovi Guides, Inc. Systems and methods for resuming playback of media content
CN113301598B (zh) * 2021-05-24 2021-12-21 中国电信集团系统集成有限责任公司 一种基站及核心网的资源管理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6259707B1 (en) * 1998-10-30 2001-07-10 Sony Corporation Synchronizing a data driven interaction controller and a non-data driven interaction controller
SG97830A1 (en) * 2000-01-07 2003-08-20 Matsushita Electric Ind Co Ltd Time based multimedia objects streaming apparatus and method
KR20190096450A (ko) * 2000-10-11 2019-08-19 로비 가이드스, 인크. 매체 콘텐츠 배달 시스템 및 방법
WO2002037217A2 (en) * 2000-11-02 2002-05-10 Sony Electronics, Inc. Content and application download based on a home network system configuration profile
AU2002252630A1 (en) * 2002-02-08 2003-09-02 David Lively Centralized digital video recording system with bookmarking and playback from multiple locations
US7155109B2 (en) * 2002-06-14 2006-12-26 Microsoft Corporation Programmable video recorder having flexible trick play
US20040133914A1 (en) * 2003-01-03 2004-07-08 Broadq, Llc Digital media system and method therefor
US7836473B2 (en) * 2003-10-31 2010-11-16 Microsoft Corporation Interface strategies for creating and invoking marks
US20050251835A1 (en) * 2004-05-07 2005-11-10 Microsoft Corporation Strategies for pausing and resuming the presentation of programs

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101368136B1 (ko) * 2012-04-10 2014-02-28 주식회사 엘지유플러스 콘텐츠 심리스 제공 방법, 장치, 및 기록 매체

Also Published As

Publication number Publication date
WO2007072680A1 (ja) 2007-06-28
CA2633582A1 (en) 2007-06-28
US20090300231A1 (en) 2009-12-03
JPWO2007072680A1 (ja) 2009-05-28

Similar Documents

Publication Publication Date Title
KR20080078838A (ko) 데이터 출력 장치, 기기 제어 장치 및 멀티미디어 배포시스템
US7950039B2 (en) Multimedia data transmitting apparatus and multimedia data receiving apparatus
US20080250101A1 (en) Multimedia data transmitting apparatus and multimedia data receiving apparatus
US7590331B2 (en) Broadcast recording apparatus
US8244829B2 (en) Data transmitting apparatus, data receiving apparatus, data transmitting method and data receiving method
US20090193101A1 (en) Multimedia data transmitting apparatus and multimedia data management method
US20090106801A1 (en) Content processing device and content processing method
CA2656144A1 (en) Method for trick playing on streamed and encrypted multimedia
KR20080078829A (ko) 방송 수신 장치, 영상 축적 장치 및 멀티미디어 배포시스템
US9264757B2 (en) Service executing apparatus
US20060280443A1 (en) Broadcast recording and reproduction apparatus and method thereof
US20090199232A1 (en) Recording and playing system, client terminal and server terminal
US20080141323A1 (en) Content information outputting apparatus, content information receiving apparatus, content information outputting method, content information receiving method
CA2631541A1 (en) Content management system
KR101559769B1 (ko) 미들웨어, 녹화물 목록 제공 방법 및 녹화물 목록 제공방법을 기록한 기록매체
KR20080020632A (ko) 프로그램 실행 장치 및 실행 방법
CN101406058A (zh) 数据输出装置、设备控制装置以及多媒体通信系统
KR101586315B1 (ko) 방송 수신기 및 네트워크 장치 모니터링 방법
WO2013061364A1 (ja) 映像信号の送受信方法、表示装置、及び送信装置
MX2007013537A (es) Aparato y metodo para la grabacion y reproduccion de transmisiones.

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application