Nothing Special   »   [go: up one dir, main page]

WO2010109865A1 - データ送信装置、データ受信装置、データ送信方法およびデータ受信方法 - Google Patents

データ送信装置、データ受信装置、データ送信方法およびデータ受信方法 Download PDF

Info

Publication number
WO2010109865A1
WO2010109865A1 PCT/JP2010/002096 JP2010002096W WO2010109865A1 WO 2010109865 A1 WO2010109865 A1 WO 2010109865A1 JP 2010002096 W JP2010002096 W JP 2010002096W WO 2010109865 A1 WO2010109865 A1 WO 2010109865A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
identifier
information
attribute information
java
Prior art date
Application number
PCT/JP2010/002096
Other languages
English (en)
French (fr)
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 パナソニック株式会社
Priority to MX2011009754A priority Critical patent/MX2011009754A/es
Publication of WO2010109865A1 publication Critical patent/WO2010109865A1/ja

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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • 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/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities

Definitions

  • the present invention relates to a data transmission device that performs output and control of multimedia digital content to a network and the like, and a data reception device that performs reception and control of digital content.
  • Such digital content sharing using a home network is called not only between CE (Consumer Electronics) devices such as TVs and digital video recorders (DVR), but also personal computers (PCs) and PDAs (Personal Digital Assistants).
  • CE Consumer Electronics
  • PCs personal computers
  • PDA Personal Digital Assistants
  • standardization organizations such as DLNA (Digital Living Network Alliance) have developed and published standards and implementation guidelines for this purpose.
  • a server on the home network for example, a set-top box or DVR that receives digital broadcasting
  • a client for example, a personal computer or a digital player
  • UPnP AV UPF AV Architecture
  • the server in response to an inquiry from a client, the server returns a list of provided contents and content attribute information.
  • DLNA uses HTTP (Hypertext Transfer Protocol).
  • Japanese Patent Application Laid-Open No. 2007-158854 discloses a method of holding a plurality of restart positions in association with user information on a server.
  • the server can set an arbitrary restart position as unique information, but a method for setting an arbitrary restart position from the client to the server is not defined. Therefore, the restart position cannot be shared between devices of different manufacturers and different models that cannot interpret this unique information.
  • STBs that receive digital broadcasts can receive and execute application programs included in broadcast waves.
  • OCAP OpenCable Application Platform
  • a Java application program is transmitted on a broadcast wave, and the Java application program is executed on the received television or STB.
  • standardization of OCAP home network expansion that downloads and executes a Java application program that realizes the functions of a server and / or a client is performed in Cable Television Laboratories, Inc. C (CableLabs) in North America.
  • a method for managing a plurality of resume positions and realizing resume in an environment in which such a Java application program is downloaded and executed is disclosed in International Publication No. 2007/072680.
  • the method disclosed in the pamphlet of International Publication No. 2007/072680 is characterized in that when the server receives a reproduction interruption request from a client, the server calculates and stores a restart position.
  • the position at which the user interrupted viewing may be different from the resume position set in the server.
  • the main reason for this is that the position at which the user interrupted viewing is the position at which the client last played back, but the server generally cannot know the position at which the client last played back, This is because the position of the last transmitted data is determined as the restart position. That is, the client generally performs buffering for temporarily storing received data, but this buffering is not taken into consideration.
  • a data transmission apparatus executes a Java (registered trademark) application program, accumulates multimedia content including at least one of video and audio, and A data transmitting device that transmits the multimedia content to a receiving device via a storage unit that stores the multimedia content and attribute information of the multimedia content; and at least a part of the multimedia content
  • a receiving unit for receiving, and the update The restart position indicated by the request and the restart position identifier for identifying the restart position are stored in the storage unit according to the update request received by the receiving unit so as to be included in the attribute information
  • a management unit that updates the attribute information.
  • the restart position is managed by being included in the attribute information in association with the restart position identifier.
  • the resume position can be interpreted, and a resume function capable of setting a plurality of resume positions can be realized.
  • an update request indicating the resume position is received from the receiving device, for example, when at least a part of the multimedia content transmitted to the receiving device is played back by the receiving device and stopped, It is possible to correctly set a resume position at which reproduction is resumed in the media content, and to appropriately resume viewing of the multimedia content.
  • the receiving unit receives the update request indicating the resume position and the resume position identifier from the reception device, and the management unit is configured such that the resume position and the resume position identifier indicated in the update request are the attributes.
  • the attribute information stored in the storage unit may be updated so as to be included in the information.
  • the receiving apparatus can set the resume position identifier, and the resume position identifier can be made meaningful for the receiving apparatus.
  • the receiving apparatus can easily interpret the resume position identifier, and can use selection of the resume position according to the resume position identifier.
  • the receiving unit receives the update request indicating application information related to a Java application program operating on the receiving device, and the management unit further uses the application information indicated in the update request to update the update information. It may be determined whether to update the attribute information according to the request, and when it is determined to update, the attribute information stored in the storage unit may be updated.
  • the management unit further sets the resume position identifier, and stores the resume position indicated in the update request and the set resume position identifier in the storage unit so that the attribute information includes the resume position identifier.
  • the accumulated attribute information may be updated.
  • the resume position can be managed by setting an appropriate resume position identifier on the data transmitting apparatus side.
  • the management unit may set the resume position identifier using information on the receiving device acquired from the receiving device.
  • the resume position identifier is set using information (for example, a device setting identifier) of the receiving device acquired from the receiving device, the receiving device that has stopped viewing the multimedia content can be identified from the resume position identifier. it can.
  • a data reception device is a data reception device that receives multimedia content including at least one of video and audio from a transmission device via a network. And receiving a Java execution unit that executes a Java (registered trademark) application program, at least a part of the multimedia content, and attribute information of the multimedia content from the transmission device via the network. And a Java execution unit that executes an update request for requesting the transmission device to update the attribute information indicating a restart position at which reproduction is resumed in the multimedia content received by the receiving unit.
  • Java execution unit executes an update request for requesting the transmission device to update the attribute information indicating a restart position at which reproduction is resumed in the multimedia content received by the receiving unit.
  • an update request indicating a restart position at which playback is resumed in the multimedia content is received. Since it is generated and transmitted to the transmission device, the position where the user interrupted viewing can be accurately registered in the attribute information of the transmission device as the resume position.
  • the management unit receives the resume position and a resume position identifier for identifying the resume position from the Java application program executed by the Java execution unit, and receives the resume position and the resume position identifier received.
  • the update request may be generated.
  • the resume position identifier can be made an identifier meaningful to the Java application program or the user.
  • the management unit sets a resume position identifier for identifying the resume position based on information recorded in the data receiving device, and indicates the set resume position identifier and the resume position.
  • An update request may be generated.
  • the resume position identifier is set based on the information recorded in the data receiving apparatus, the resume position is managed using the resume position identifier indicating the information recorded in the data receiving apparatus. Can be made.
  • the information recorded in the data receiving device may be application information related to the Java application program, and the management unit may set the application information as the resume position identifier.
  • the transmission device can manage the restart position using the restart position identifier indicating the application information.
  • the transmission apparatus can select and use the resume position identifier and the resume position stored in the transmission apparatus in accordance with the application information indicated in the update request, and can also use the application information indicated in the update request. In response, it is possible to determine whether or not the restart position identifier and the restart position stored in the transmission device can be updated.
  • the information recorded in the data receiving device is information related to the data receiving device set by the Java application program, and the management unit uses the information related to the data receiving device as the resume position identifier. It may be set.
  • resume position identifier is information related to the data receiving apparatus set by the Java application program
  • any device that can download and execute the Java application program can be used without depending on the manufacturer of the device.
  • the restart position identifier can be used uniformly in each device.
  • the present invention can be realized not only as such a data transmission device and a data reception device, but also as a multimedia distribution system including the data transmission device and the data reception device, a method of processing operation in each device, and a computer.
  • the present invention can also be realized as a program for performing a processing operation, a recording medium storing the program, or an integrated circuit.
  • each means for solving the above-mentioned problem may be combined arbitrarily.
  • the data transmission device and the data reception device of the present invention even when the viewing or playback of multimedia content is interrupted and resumed in the data reception device, other data reception on the network is possible. Even when resuming with the apparatus, it is possible to accurately resume the reproduction.
  • FIG. 1 is a configuration diagram of a multimedia distribution system according to an embodiment of the present invention.
  • FIG. 2 is a configuration diagram of the data transmission apparatus 101 in the embodiment of the present invention.
  • FIG. 3 is a diagram showing an example of an external appearance when the input unit 201 according to the embodiment of the present invention is configured with a front panel.
  • FIG. 4 is a configuration diagram of a program stored in the data transmission apparatus 101 according to the embodiment of the present invention.
  • FIG. 5A is a diagram showing an example of a screen display in the embodiment of the present invention.
  • FIG. 5B is a diagram showing an example of a screen display according to the embodiment of the present invention.
  • FIG. 6 is a diagram showing an example of program information stored in the second memory 203 according to the embodiment of the present invention.
  • FIG. 7 is a diagram illustrating an example of channel information stored in the second memory 203 according to the embodiment of the present invention.
  • FIG. 8A is a diagram showing an example of channel identifiers stored in the second memory 203 according to the embodiment of the present invention.
  • FIG. 8B is a diagram illustrating an example of channel identifiers stored in the second memory 203 according to the embodiment of the present invention.
  • FIG. 8C is a diagram illustrating an example of channel identifiers stored in the second memory 203 according to the embodiment of the present invention.
  • FIG. 9 is a diagram illustrating an example of the PAT stored in the second memory 203 according to the embodiment of the present invention.
  • FIG. 10 is a diagram illustrating an example of the PMT stored in the second memory 203 according to the embodiment of the present invention.
  • FIG. 11 is a diagram illustrating an example of the AIT stored in the second memory 203 according to the embodiment of the present invention.
  • FIG. 12 is a diagram showing an example of a file system stored in the second memory 203 according to the embodiment of the present invention.
  • FIG. 13 is a diagram illustrating an example of a configuration of data stored in the second memory 203 according to the embodiment of the present invention.
  • FIG. 14 is a diagram showing an example of content attribute information in the embodiment of the present invention.
  • FIG. 15 is a diagram showing an example of the attribute information table in the embodiment of the present invention.
  • FIG. 16 is a diagram showing an example of the URI table in the embodiment of the present invention.
  • FIG. 17 is an internal configuration diagram of the network library 405e according to the embodiment of the present invention.
  • FIG. 18 is a diagram showing an example of the restart position information table in the embodiment of the present invention.
  • FIG. 19 is a diagram showing an example of the restart position information table in the embodiment of the present invention.
  • FIG. 20 is a diagram showing an example of the restart position information table in the embodiment of the present invention.
  • FIG. 21 is a diagram showing an example of the content directory in the embodiment of the present invention.
  • FIG. 22 is a diagram showing an example of content attribute information in the embodiment of the present invention.
  • FIG. 23 is a diagram showing an exemplary sequence of the data reception device and the data transmission device in the embodiment of the present invention.
  • FIG. 24 is a diagram showing an example of content attribute information in the embodiment of the present invention.
  • FIG. 25 is a diagram showing an example of content attribute information in the embodiment of the present invention.
  • FIG. 26 is a configuration diagram of the data receiving apparatus 102 and the data receiving apparatus 103 in the embodiment of the present invention.
  • FIG. 27 is a configuration diagram of programs stored in the data reception device 102 and the data reception device 103 according to the embodiment of the present invention.
  • FIG. 28 is an internal configuration diagram of the network library 2704d according to the embodiment of the present invention.
  • FIG. 29 is a diagram showing an example of the restart position information table in the embodiment of the present invention.
  • FIG. 30 is a diagram showing an example of the Java API provided in the network library 2704d according to the embodiment of the present invention.
  • FIG. 31 is a diagram showing an example of a Java API provided in the network library 2704d according to the embodiment of the present invention.
  • FIG. 32 is a diagram showing an example of the Java API provided in the network library 2704d according to the embodiment of the present invention.
  • FIG. 33 is a diagram showing an example of a Java API provided in the network library 2704d according to the embodiment of the present invention.
  • FIG. 34 is a diagram showing an example of the Java API provided in the network library 2704d according to the embodiment of the present invention.
  • FIG. 35 is a diagram showing an example of a Java API provided in the network library 2704d according to the embodiment of the present invention.
  • FIG. 36 is a diagram showing an example of the Java API provided in the network library 2704d according to the embodiment of the present invention.
  • FIG. 37 is a diagram showing an example of the Java API provided in the network library 2704d according to the embodiment of the present invention.
  • FIG. 38 is a diagram showing an example of the Java API provided in the network library 2704d according to the embodiment of the present invention.
  • FIG. 39 is a diagram showing an example of creation of an updated restart position information table created by the content management unit 2804 according to the embodiment of the present invention.
  • FIG. 1 is a configuration diagram of a multimedia distribution system according to an embodiment of the present invention.
  • 101 is a data transmission device
  • 102 and 103 are data reception devices
  • 104 is a network
  • 105 is a cable television broadcasting station
  • 106 is a cable connecting the data transmission device 101 and the broadcasting station 105.
  • 107 represent the multimedia distribution system constituted by these.
  • the data transmission device 101, the data reception device 102, and the data reception device 103 are connected to the network 104 and can communicate with each other via the network 104.
  • the data transmission apparatus 101 includes a network interface and a CATV STB (Set Top Box) that receives digital broadcasts and includes storage means for storing multimedia contents (hereinafter referred to as multimedia data or contents). It is.
  • the data transmission apparatus 101 is connected to the broadcast station 105 via a cable 106.
  • the data transmitting apparatus 101 executes a Java application program (hereinafter referred to as a Java application or an application) distributed from the broadcasting station 105 to realize various functions, or functions provided in the data receiving apparatus 102 or 103. It is possible to control.
  • the data transmitting apparatus 101 provides a Java function with a server function that provides sharing of multimedia data stored in the data receiving apparatus 102 or 103 connected to the home network and a function related thereto. Control.
  • a Java application that performs this function is referred to as a server application. The reception and activation of the Java application will be described later.
  • the data transmitting apparatus 101 stores multimedia data such as received digital broadcast content in the storage unit. It is also connected to the network 104 through a network interface. Then, requests from the data receiving apparatus 102 and the data receiving apparatus 103 transmitted through the network 104 are received. In response to the request, the attribute information for each received digital broadcast content, the attribute information for each stored content, or multimedia data is transmitted to the data receiving device 102 and the data receiving device 103 via the network 104. It is. For this reason, the data transmitting apparatus 101 manages the accumulated content so that it can be shared with the data receiving apparatus 102 and the data receiving apparatus 103 via the network.
  • the data receiving apparatus 102 and the data receiving apparatus 103 receive a list of contents that can be provided to the data transmitting apparatus 101 in response to a user operation, and multimedia data and content attribute information (hereinafter referred to as content attribute information). ) Send request. Further, as a response, data is received from the data transmission apparatus 101 and presented to the user. At this time, the data receiving device 102 and the data receiving device 103 can determine whether the content is “playback is suspended” from the content attribute information received from the data transmitting device 101, and respond to a user request. Thus, a request for restarting multimedia data transmission can be issued.
  • the data receiving apparatus 102 and the data receiving apparatus 103 include Java execution means, and can execute a Java application received from the broadcasting station 105, the data transmitting apparatus 101, the Internet, or the like.
  • a client function that receives sharing of multimedia data provided by the data transmission apparatus 101 is controlled by a Java application received from the broadcast station 105.
  • a Java application that performs this function is referred to as a client application.
  • communication between the data transmitting apparatus 101, the data receiving apparatus 102, and the data receiving apparatus 103 via the network 104 is performed according to a protocol defined by DLNA.
  • DLNA Networked, Device, Interoperability, Guidelines, Expanded, Volume, 1: Architectures, and Protocols, according to UPnP, DA (Device, Architecture), search for servers and services provided by servers, UPnP, AV, and CDS.
  • Communication of search and attribute of content is performed, and communication of digital data of content is performed using HTTP (Hypertext Transfer Protocol).
  • HTTP Hypertext Transfer Protocol
  • the network 104 is a home network installed in a home, and is an IP network configured by Ethernet, wireless LAN, MoCA (Multimedia over Coax Alliance), and the like.
  • the data transmission apparatus 101 will be described with respect to a server function that provides content sharing to the data reception apparatus 102 and the data reception apparatus 103, and the data reception apparatus 102 and the data reception apparatus 103 will be described.
  • the client function for receiving content attribute information and multimedia data from the data transmitting apparatus 101 will be described, but the same applies to configurations having both a client function and a server function.
  • the server apparatus advertises a server device and searches for a server or service by a method defined in UPnP DA. As a result, it is possible to access the data transmitting apparatus 101 from the data receiving apparatus 102 and the data receiving apparatus 103.
  • the data transmission apparatus 101 advertises that the server apparatus itself has joined the network 104 by multicasting on the network 104. If the data receiving apparatus 102 has already joined the network 104 and receives this notification, the data receiving apparatus 102 checks whether the notified server device is known. In the case of an unknown server device, the data reception device 102 requests the data transmission device 101 to transmit detailed information on the server device and detailed information on devices and services provided by the server device. When the data receiving apparatus 102 acquires information of the data transmitting apparatus 101 as a response to the request, the data receiving apparatus 102 stores the information. The client application can acquire information on these server devices from the data receiving apparatus 102. The data receiving apparatus 103 performs the same processing as that of the data receiving apparatus 102.
  • the data receiving apparatus 102 and the data receiving apparatus 103 search for the server apparatus by multicasting an inquiry of the server apparatus connected to the network 104.
  • the data transmission apparatus 101 notifies the data reception apparatus 102 and the data reception apparatus 103 that it is a server device as a response.
  • the data receiving apparatus 102 and the data receiving apparatus 103 request the data transmitting apparatus 101 to transmit the detailed information of the server device and the detailed information of the device and service provided by the server device.
  • the data receiving apparatus 102 and the data receiving apparatus 103 acquire information of the data transmitting apparatus 101 as a response to the request, the data receiving apparatus 102 and the data receiving apparatus 103 store the information.
  • the data receiving apparatus 102 and the data receiving apparatus 103 can recognize that the data transmitting apparatus 101 is a server device connected to the network 104 and the service provided by the data transmitting apparatus 101. it can.
  • the data transmitting apparatus 101 is a server device connected to the network 104 and the service provided by the data transmitting apparatus 101. it can.
  • the data transmitting apparatus 101 is a server device connected to the network 104 and the service provided by the data transmitting apparatus 101. it can.
  • the data transmitting apparatus 101 manages the data structure provided from the server to the client by UPnP AV CDS, called a content directory.
  • content is structured in a tree structure like a computer folder or file.
  • a folder is called a container
  • a file is called an item.
  • content is item.
  • a superordinate concept of containers and items is called an object. That is, containers and items are derived classes of objects.
  • FIG. 21 is a diagram showing an example of a content directory.
  • 2102, 2103, 2104, and 2105 represent containers, and 2106, 2107, and 2108 represent items.
  • the uppermost container is particularly called a root container.
  • Such a content directory may be configured by a server application, or may be configured by the data transmission apparatus 101 according to a recording form in the storage unit.
  • the server application constructs a content directory.
  • FIG. 22 is a diagram illustrating an example of content attribute information transmitted from the data transmission apparatus 101 to a client such as the data reception apparatus 102. However, in FIG. 22, only the portion related to one content (item) is extracted. As shown in FIG. 22, in UPnP AV CDS, each content attribute information is transmitted as an XML document.
  • the data transmission apparatus 101 manages the attribute information for each object.
  • the attribute information is content attribute information indicating the title of the corresponding content, the broadcast date and time, the broadcast channel, or the like.
  • attribute information to be assigned for each type of object is defined.
  • a server application or vendor defines unique attribute information and defines a mechanism for adding the attribute information. Therefore, in the data transmission apparatus 101, a server application executed on the data transmission apparatus 101 can add attribute information defined by UPnP AV CDS or DLNA and unique attribute information of the server application.
  • ocap PresentationPoint, which is an attribute representing a restart position that can be recognized by both the server application and the client application, is set as unique attribute information.
  • PresentationPoint “ocap” is a prefix representing an XML namespace
  • PresentationPoint represents an XML element.
  • “ocap” represents a namespace whose namespace URI is “urn: schemas-opencable-com”.
  • XML namespace refer to the XML namespace specification published by World Wide Web Consortium.
  • communication between the data transmission apparatus 101 and the data reception apparatus 102 will be described from transmission of multimedia data to interruption, and then communication between the data transmission apparatus 101 and the data reception apparatus 103 will be described.
  • An example of resuming transmission of multimedia data interrupted during transmission to the data receiving apparatus 102 will be described.
  • FIG. 23 is a diagram illustrating an example of a sequence relating to acquisition of multimedia data and update of content attribute information between the data transmission apparatus 101, the data reception apparatus 102, and the data reception apparatus 103.
  • the same number is processed for the same number.
  • the data transmission apparatus 101, the data reception apparatus 102, and the data reception apparatus 103 are connected to the network 104, they each perform communication defined by UPnP DA described above. Thereby, it is assumed that the data receiving apparatus 102 and the data receiving apparatus 103 can recognize that the data transmitting apparatus 101 is a server device (multimedia server) connected to the network 104.
  • a server device multimedia server
  • the data receiving apparatus 102 and the data receiving apparatus 103 advertise that they are participating in the network in the same manner as the data transmitting apparatus 101 described above, and the data transmitting apparatus 101 receives the data receiving described above.
  • a process of receiving detailed device information from the data receiving apparatus 102 and the data receiving apparatus 103 in the same manner as the apparatus 102 and the data receiving apparatus 103 may be included.
  • the data transmitting apparatus 101 sets “ ⁇ 1” to ocap: PresentationPoint, which is resumption position information indicating the resumption position of the recorded content, and initializes it (2301).
  • the data receiving apparatus 102 uses the UPnP AV CDS: Browse action to request the data transmitting apparatus 101 to obtain a list of content attribute information (2302).
  • the data transmitting apparatus 101 transmits a list of content attribute information designated by the data receiving apparatus 102 to the data receiving apparatus 102 (2303).
  • the ocap: PresentationPoint is the initial value “ ⁇ 1”
  • the data transmitting apparatus 101 transmits the content attribute information with the content of the ocap: PresentationPoint being an element of the content attribute information as “ ⁇ 1”.
  • the data receiving apparatus 102 acquires, from the acquired content attribute information, an ocap: PresentationPoint indicating a restart position and a URL (Uniform Resource Locator) necessary for requesting content file transmission (2304).
  • ocap: PresentationPoint indicates the initial value, that is, when the content of ocap: PresentationPoint is ⁇ -1 '', it can be determined that the information of ⁇ playback suspended '' is not set in the content
  • the data receiving apparatus 102 makes a playback request from the beginning of the content. If a value is set in ocap: PresentationPoint here, a playback position is determined using a resume position identifier described later (2305).
  • the data receiving apparatus 102 notifies the client application of all or part of the restart position and the restart position identifier specified in ocap: PresentationPoint, and the client application sets the playback position in the data receiving apparatus 102. it can.
  • a method for notifying the client application will be described later.
  • the data reception device 102 may determine the playback position based on the restart position and the restart position identifier specified in ocap: PresentationPoint without notifying the client application.
  • the data receiving apparatus 102 designates the acquired URL and reproduction position, and requests transfer of multimedia data by an HTTP GET request (2306).
  • HTTP GET request An example of a data transfer request is shown below.
  • the transfer range such as the transmission start position and transmission end position is not specified, but even when playing from the beginning, transfer is performed using the TimeSeekRange.dlna.org header etc. A range may be specified.
  • the data transmitting apparatus 101 When the data transmitting apparatus 101 receives such a data transfer request and performs designated data transfer, the data receiving apparatus 102 can start viewing (2307).
  • CDS UpdateObject takes as arguments the content identifier (ObjectID) for changing the restart position, the pre-update ocap: PresentationPoint, and the post-update ocap: PresentationPoint.
  • the content of CDS UpdateObject in the case where 00:30:00 is specified as the restart position in the updated ocap: PresentationPoint, assuming that playback of the data receiving apparatus 102 is stopped at the position where 30 minutes have elapsed from the beginning of the content Is shown below.
  • the content attribute information acquired by CDS: Browse is used for the content identifier and the pre-update ocap: PresentationPoint.
  • the content identifier is “ContentID00”
  • the pre-update ocap: PresentationPoint is “ ⁇ 1”
  • the ocap: PresentationPoint is updated to “00:30:00”.
  • the content of ocap: PresentationPoint is set to “ ⁇ 1”, but it can be understood that an empty element or a null character is not set. Any format is acceptable.
  • the data receiving apparatus 102 can set resume position information that indicates a resume position and a resume position identifier that identifies the resume position.
  • resume position identifiers include information specific to the data receiving device (Friendly Name, UUID, Port Number, IP address, etc.) and information specific to the client application operating on the data receiving device (OCAP specification or DVB-MHP specification).
  • the data receiving apparatus 102 can set information held by the data receiving apparatus 102 or information set by a client application operating on the data receiving apparatus 102 as a reproduction start resume position identifier. A method for setting the resume position identifier from the client application will be described later.
  • the setting of the resume position identifier may be a configuration in which the data transmission apparatus 101 assigns when an update request for ocap: PresentationPoint is received from the data reception apparatus 102 and the data reception apparatus 103.
  • the following is an example in which the data receiving apparatus 102 requests the update of the resume position information included in the content attribute information by associating the resume position with the resume position identifier.
  • the data receiving apparatus 102 can set the resuming position in association with the resuming position identifier (hereinafter referred to as “device setting identifier”) set by the data receiving apparatus 102.
  • the device setting identifier is information held by the data receiving device 102 itself. Examples include FriendlyName, UUID, MAC address, IP address.
  • Friendly Name of the data receiving apparatus 102 is used as the apparatus setting identifier.
  • Friendly ⁇ Name is defined by UPnP ⁇ DA, and is used for setting an easy name for the user to identify the device. UPnP DA does not define what name should be set as Friendly Name. Therefore, Friendly Name is set according to different policies for each manufacturer and model.
  • the Java application sets Friendly Name to the data receiving device 102, the data receiving device 103, and the data transmitting device 101 by a method described later, whereby the Friendly ⁇ Name setting policy of each device in the home network is set. Can be unified.
  • an update request (CDS: UpdateObject) when the installation location is designated as Friendly Name (friendly_name) is shown below.
  • the data receiving apparatus 102 can acquire information of a client application that operates on the data receiving apparatus 102 (hereinafter referred to as application information).
  • the application information includes, for example, organization_id (org_id) or application_id (app_id) defined in the OCAP standard, or group_identifier obtained by grouping several applications. Any one of the application information or a combination thereof can be used as the device setting identifier. As a result, the data receiving apparatus 102 can use the restart position having the same restart position identifier as the application information.
  • the data transmitting apparatus 101 can update the UPnPUPAVnCDS content attribute information only for the restart position update request having the same restart position identifier as the application information.
  • the application information By using the application information in this way, it is possible to restrict devices and applications that request the use and update of the resume position, and there is an effect that security is improved.
  • the data receiving apparatus 102 sets the restart position and the restart position identifier.
  • a client application operating on the data receiving apparatus 102 sets a resume position identifier in the data receiving apparatus 102 by a method described later.
  • an application setting identifier set by the client application.
  • “UserName” is used as the application setting identifier, but other information may be used as long as it is a resume position identifier set by the downloaded application.
  • App setting identifier UserName (eg "John")>
  • CDS: UpdateObject (ContentID00, “ ⁇ Ocap: PresentationPoint> -1 ⁇ / ocap: PresentationPoint>”, “ ⁇ Ocap: PresentationPoint Identifier “ John ”> 00:30:00 ⁇ / ocap: PresentationPoint>”);
  • the apparatus setting identifier and the application setting identifier are managed in combination as the restart position identifier of the restart position.
  • the application setting identifier set by the client application operating on the data receiving apparatus 102 in addition to the application setting identifier, it is possible to determine what kind of client application the restart position identifier is set.
  • An example of setting application information as a device setting identifier will be described.
  • Device setting identifier Application information
  • Application setting identifier UserName (Example: “John”)>
  • the CDS: UpdateObject shown here illustrates the method of describing the resume position identifier as an attribute
  • any format may be used as long as the relation between the resume position and the resume position identifier is known.
  • a method of using a CSV (Comma Separated Value) list as the contents of ocap: PresentationPoint and delimiting the restart position identifier with a comma “,” after the restart position is shown below.
  • the device setting identifier may be set as an attribute
  • the application setting identifier may be specified to be set in the contents of ocap: PresentaionPoint using a CSV list.
  • CDS UpdateObject when updating multiple ocap: PresentationPoints
  • a plurality of attribute values are set using a CSV list for each of the ocap: PresentationPoint before update and the ocap: PresentationPoint after update. Then, the update is performed in the order described in the CSV list in the pre-update ocap: PresentationPoint and the post-update ocap: PresentationPoint.
  • the resume position “00:15:00” of the resume position identifier “John” is changed to the resume position “00:30:00” of the resume position identifier “John”.
  • the restart position “00:45:00” of “Bob” means to delete.
  • a combination of a restart time and a restart start identifier may be set using a CSV list.
  • CDS UpdateObject (ContentID00, “ ⁇ Ocap: PresentationPoint> 00: 30: 00, John ⁇ / ocap: PresentationPoint>”, “ ⁇ Ocap: PresentationPoint> 00: 30: 00, John, 00: 45: 00, Bob ⁇ / ocap: PresentationPoint>”);
  • UpdateObject description method exemplified so far may be a combination of these methods as long as the restart position and the restart position identifier can be related.
  • the data transmitting apparatus 101 when receiving the CDS: UpdateObject, updates the content attribute information corresponding to the specified content identifier (2310), and transmits the update result to the data receiving apparatus 102 (2311). ). That is, in step 2310, the data transmitting apparatus 101 updates the content attribute information so that the updated restart position information (ocap: PresentationPoint) is included in the accumulated content attribute information.
  • the resume position identifier when the data transmitting apparatus 101 receives CDS: UpdateObject from the data receiving apparatus 102 and the data receiving apparatus 103, a resume position identifier associated with the resume position may be given.
  • a method of using the date and time when the data transmitting apparatus 101 receives an update request for ocap PresentationPoint as a resume position identifier, identifying the data receiving apparatus that transmitted the update request, and information on the data receiving apparatus (FriendlyName, Information specific to the data receiving device such as UUID, “IP address”, “MAC address”, or information specific to the client application operating on the data receiving device such as organization_id and “application_id” can also be set as the resume position identifier.
  • the data transmitting apparatus 101 When receiving the CDS: UpdateObject, the data transmitting apparatus 101 updates the restart position and the restart position identifier of the content whose object identifier is “ContentID00”.
  • the data transmitting apparatus 101 deletes the content resumption position and the resumption position identifier in the following manner: (1) a method of deleting when receiving a deletion request from a data receiving apparatus to be described later;
  • a data transfer request is received from a specific data receiving device, check the data transfer start position, and if data transfer is requested from a location that matches the restart position managed by ocap: PresentationPoint, the matched restart A method of deleting the position and the restart position identifier, or (3) a method of automatically deleting the combination of the restart position and the restart position identifier that has not been restarted for a specific period by the data transmission apparatus 101 may be used.
  • the data transmitting apparatus 101 notifies the CDS update to the data receiving apparatus that has transmitted the CDS update request (2312).
  • the update notification method is a known technique defined in the UPnP standard. For details, refer to the UPnP standard.
  • the data receiving apparatus 103 uses the UPnP AV CDS: Browse action to request the data transmitting apparatus 101 to obtain a list of content attribute information (2302).
  • the data transmitting apparatus 101 transmits a list of content attribute information designated to the data receiving apparatus 103 (2303).
  • FIG. 24 is a diagram showing an example of content attribute information specified in the data receiving apparatus 103.
  • a part of the content attribute information that the data reception apparatus 103 receives as a CDS: Browse response is shown in FIG. It is exemplified as 2401.
  • the data receiving apparatus 102 does not set a resuming position identifier, and 2401 in FIG. 24 resumes the date and time when the data transmitting apparatus 101 received the request. It is given as a position identifier.
  • CDS UpdateObject (ContentID00, “ ⁇ Ocap: PresentationPoint> 00:30:00, LivingRoom, 00:45:00, Tom'sRoom ⁇ / ocap: PresentationPoint> ”, “ ⁇ Ocap: PresentationPoint> 00:30:00, LivingRoom, 00:45:00, Tom'sRoom, 00:20:00, Kitchen ⁇ / ocap: PresentationPoint>”);
  • FIG. 25 is a diagram illustrating another example of the content attribute information specified in the data receiving apparatus 103.
  • ocap PresentationPoint is the contents of the desc element in accordance with the UPnP AV standard, but any other XML description method can be used as long as it represents a resume position and a resume position identifier. Also good.
  • the data receiving apparatus 103 acquires, from the acquired content attribute information, an ocap: PresentationPoint indicating a restart position and a URL necessary for requesting a content file transmission (2304).
  • the data receiving apparatus 103 acquires the resume position identifier and the resume position from ocap: PresentationPoint, notifies the client application, and determines the playback position by setting the playback position by the client application (2305). A method of notifying the application will be described later. Note that the data receiving apparatus 103 may determine the playback position based on the restart position and the restart position identifier specified in ocap: PresentationPoint without notifying the client application.
  • resume position identifier When an application identifier defined in the OCAP standard is used as the resume position identifier, only resume position information having the same application identifier as the client application operating on the data receiving apparatus 103 is notified to the client application. Also good.
  • the organization_id and application_id of the client application are equal to the resume position identifier, it can be determined that the same application has been set, so the client application can determine that the resume position, the application setting identifier, etc. can be used. It may be.
  • organization_id is the same, the organization that created the application is the same, and therefore it may be configured that the restart position, application setting identifier, and the like can be used.
  • a configuration may be adopted in which whether or not to use the restart position and the application setting identifier is determined based on any one or a combination of application information. In this case, it is possible to limit applications that use and update the resume position, which has the effect of improving security.
  • the data receiving apparatus 103 designates the acquired URL and playback position, and requests multimedia data transfer by an HTTP GET request (2306).
  • HTTP GET request An example of specifying a playback request range using TimeSeekRange.dlna.org as an example of a data transfer request is shown below.
  • ⁇ Content data transfer request> GET http://192.168.0.3/AVData/0001.m2ts HTTP / 1.1 Host: 192.168.0.3 Date: Fri Mar 06 20:00:00 2009 GMT
  • User-Agent: AVT Client Connection: Keep-Alive TimeSeekRange.dlna.org: ntp 00: 30: 00-01: 25: 00
  • the data transmitting apparatus 101 When the data transmitting apparatus 101 receives such a data transfer request and performs designated data transfer, the data receiving apparatus 103 can resume viewing (2307).
  • the data receiving apparatus 103 ends the data reception and disconnects the connection with the data transmitting apparatus 101.
  • the data reception apparatus 103 requests the data transmission apparatus 101 to update the restart position using CDS: UpdateObject as necessary (2309). That is, the data receiving apparatus 103 requests the restart position to be updated to the position where playback is stopped in the content (playback stop position).
  • the restart position update request (1) deletes the resume position and resume position identifier, (2) adds a new resume position and resume position identifier, and (3) changes the resume position related to a certain resume position identifier.
  • CDS UpdateObject when Friendly ⁇ Name is used as a resume position identifier as an example of (1) and (2)
  • CDS UpdateObject when UserName is used as a resume position identifier as an example of (3) are shown below.
  • the update can be realized by replacing the pre-update ocap: PresentationPoint with the post-update ocap: PresentationPoint.
  • Example of Deletion of Resume Position and Resume Position Identifier For example, when the data receiving apparatus 103 completes viewing of content, it can be assumed that the resume position is deleted. Here, the data receiving apparatus 103 transmits CDS: UpdateObject for deleting the resume position to the data transmitting apparatus 101, and deletes the information on the resume position.
  • CDS UpdateObject for deleting the resume position to the data transmitting apparatus 101, and deletes the information on the resume position.
  • the data transmitting apparatus 101 that has received this request deletes the ocap: PresentationPoint. At this time, if there is no ocap: PresentationPoint in addition to the ocap: PresentationPoint that has received the deletion request, the data transmitting apparatus 101 deletes the ocap: PresentationPoint and has an initial value “ ⁇ 1” as the content, ocap: PresentationPoint Add
  • the corresponding ocap: PresentationPoint is deleted, but a request to update the corresponding ocap: PresentationPoint value to the initial value ⁇ -1 '' is sent, and the data transmitting apparatus 101 determines,
  • the ocap: PresentationPoint may be deleted or replaced with ocap: PresentationPoint having the initial value “ ⁇ 1” as content.
  • the data transmitting apparatus 101 updates the content attribute information corresponding to the designated content identifier (2310), and transmits the update result to the data receiving apparatus 102 (2311).
  • the data transmitting apparatus 101 stores the application identifier and the resume position in association with each other as the resume position information, the same application identifier (for example, the client application operating on the data receiving apparatus that made the resume position update request) (for example, If the restart position information has organization_id, application_id, group_identifier, or a combination thereof, or if update permission is given to the restart position information, the restart position is updated, but otherwise In such a case, the configuration may be such that the update is not performed. In this case, it is possible to limit the data receiving apparatus or client application that performs updating of the restart position, and it is possible to prevent an unintended update by the user.
  • the data transmitting apparatus 101 notifies the CDS update to the data receiving apparatus that has transmitted the CDS update request (2312).
  • the data reception apparatus 102 Even if the viewing of the content that was performed in step 1 is interrupted, it is possible to accurately resume the viewing in another data receiving apparatus 103.
  • the data transmission device 101 the data reception device 102, and the data reception device 103 that constitute the multimedia distribution system 107 of the present invention will be described in more detail.
  • FIG. 2 is a block diagram showing the relationship between the components constituting the data transmitting apparatus 101 in the present embodiment.
  • the data transmission apparatus 101 includes an input unit 201, a first memory 202, a second memory 203, a reception unit 204, a demultiplexing unit 205, a descrambler 206, a TS decoder 207, a video output unit 208, an audio output unit 209, and a TS multiplexer 210. , A network unit 211, and a CPU 212.
  • the input unit 201 is composed of a front panel, a remote control light receiver, and the like, and accepts instructions such as channel selection from the user.
  • FIG. 3 is a diagram illustrating an example of the case where the input unit 201 is configured with a front panel.
  • the front panel 300 includes eight buttons including an up cursor button 301, a down cursor button 302, a left cursor button 303, a right cursor button 304, an OK button 305, a cancel button 306, an EPG button 307, and a theater button 308.
  • the button When the user presses the button, the CPU 212 is notified of the identifier of the pressed button.
  • the first memory 202 is composed of a RAM or the like, and is used when the CPU 212 temporarily stores data.
  • the second memory 203 is configured by a device that can hold information even when the power is stopped, such as a flash memory or a hard disk, and stores a program executed by the CPU 212.
  • the second memory 203 may use a removable storage device such as an SD memory card.
  • the receiving unit 204 is connected to a cable from the CATV station, receives a broadcast wave, tunes to a frequency designated by the CPU 212, extracts an MPEG transport stream, and delivers it to the demultiplexing unit 205.
  • the demultiplexing unit 205 receives the MPEG transport stream from the receiving unit 204, extracts information designated from the CPU 212, and delivers it to the CPU 212. In addition, the MPEG transport stream is transferred to the descrambler 206 as it is.
  • the descrambler 206 may be a module built in the data transmitting apparatus 101 or may be implemented by CableCARD (TM) installed in a North American cable receiver.
  • CableCARD is described in the CableCARD Interface Specification formulated by CableLabs in the United States, and description thereof is omitted here.
  • the TS decoder 207 receives an identifier of section data such as audio data, video data, or PSI / SI information from the CPU 212. Further, from the descrambled stream received from the descrambler 206, data corresponding to the identifier of the received data, such as audio data, video data, or PSI / SI information, is extracted. In 208, the audio data is delivered to the audio output unit 209. Further, both of them and the section data are delivered to the TS multiplexer 210.
  • section data such as audio data, video data, or PSI / SI information
  • the video output unit 208 includes a video output terminal, converts the received video data into video data corresponding to the video output terminal, and outputs the video data.
  • Examples of video output terminals include composite cable terminals.
  • the audio output unit 209 includes an audio output terminal, converts the received audio data into audio data corresponding to the audio output terminal, and outputs the audio data.
  • Examples of the audio output terminal include an earphone terminal and a composite cable terminal.
  • the TS multiplexer 210 configures an MPEG2 transport stream from the received video data, audio data, and section data, and delivers the MPEG2 transport stream to the network unit 211.
  • the PSI / SI information is rewritten as necessary.
  • the network unit 211 includes a network interface, converts the data received from the CPU 212 into a signal corresponding to the physical medium of the network to which the network interface is connected, and outputs the signal.
  • a signal is received from the network interface, converted into a packet defined by the IP network, and delivered to the CPU 212.
  • the CPU 212 controls the receiving unit 204, the demultiplexing unit 205, the descrambler 206, the TS decoder 207, the TS multiplexer 210, and the network unit 211 by executing a program stored in the second memory 203.
  • FIG. 4 is a configuration diagram illustrating an example of a program stored in the second memory 203 and executed by the CPU 212.
  • the program 400 includes a plurality of subprograms, and specifically includes an OS 401, an EPG 402, a Java VM 403, a service manager 404, and a Java library 405.
  • the OS 401 is a subprogram that is activated by the CPU 212 when the data transmission apparatus 101 is powered on.
  • OS is an abbreviation for operating system, and Linux is an example.
  • the OS 401 is a general term for known techniques including a kernel 401a and a library 401b that execute other subprograms in parallel, and detailed description thereof is omitted.
  • the kernel 401a of the OS 401 executes the EPG 402 and Java VM 403 as subprograms.
  • the library 401b provides these subprograms with a plurality of functions for controlling the components held by the data transmission apparatus 101.
  • the library 401b includes a tuner 401b1, a restriction release 401b2, an AV playback 401b3, and a NET 401b4 as examples of functions.
  • the tuner 401 b 1 receives tuning information including the frequency from other subprograms and the Tuner 405 c of the Java library 405 and passes it to the receiving unit 204.
  • the receiving unit 204 can perform demodulation processing based on the given tuning information, and can deliver the demodulated data to the demultiplexing unit 205.
  • the Tuner 405c of the other subprogram and Java library 405 can control the receiving unit 204 through the library 401b.
  • Qualification cancellation 401b2 receives information from other subprograms or CA 405d of Java library 405, and passes it to descrambler 206.
  • the AV playback 401b3 receives the audio packet ID and the video packet ID from other subprograms and the JMF 405a of the Java library 405.
  • the received audio packet ID and video packet ID are given to the TS decoder 207.
  • the TS decoder 207 performs filtering based on the given packet ID, thereby realizing video / audio reproduction.
  • the NET 401b4 creates a packet of a protocol below the application layer defined by the IP network from data received from another subprogram or the network library 405e of the Java library 405.
  • the protocol below the application layer is, for example, a TCP packet, a UDP packet, or an IP packet. By passing this over to the network unit 211, the message and data are transmitted to other devices via the network 104.
  • the NET 401b4 receives a message from another device via the network 104, the NET 401b4 converts the message into a packet of an application layer protocol and delivers it to another subprogram or the network library 405e of the Java library 405.
  • the application layer protocol is, for example, HTTP (Hypertext Transfer Protocol) or RTP (Real-time Transport Protocol).
  • the EPG 402 includes a program display unit 402a that displays a list of programs to the user and receives input from the user, and a playback unit 402b that performs channel selection.
  • EPG is an abbreviation for Electric Program Guide.
  • the EPG 402 is activated by the kernel 401a when the data transmission apparatus 101 is powered on. Inside the activated EPG 402, the program display unit 402a and the playback unit 402b are activated simultaneously. When the program display unit 402a is activated, it waits for an input from the user through the input unit 201 of the data transmission apparatus 101.
  • the input unit 201 is configured with the front panel shown in FIG.
  • the program display unit 402a of the EPG 402 which is a subprogram operating on the CPU 212, receives this identifier, creates program information display data, and outputs it to the monitor 510 by monitor output means (not shown).
  • the monitor 510 may be included in the data transmission apparatus 101, or may be a television connected to the data transmission apparatus 101 with a composite cable, an HDMI (High-Definition Multimedia Interface) cable, or the like. The monitor 510 displays the received program information display data.
  • FIG. 5A and 5B are diagrams showing an example of a program guide displayed on the monitor 510.
  • FIG. 5A program information is displayed on the monitor 510 in a grid pattern.
  • a column 501 displays time information.
  • a column 502 displays a channel name “Channel 1” and a program broadcast in a time zone corresponding to the time in the column 501.
  • the program “News 9” is broadcast from 9:00 to 10:30
  • the program “Movie AAA” is broadcast from 10:30 to 12:00.
  • the column 503 displays a channel name “Channel 2” and a program broadcast in a time zone corresponding to the time in the column 501.
  • Reference numeral 530 denotes a cursor.
  • the cursor 530 moves when the left cursor button 303 and the right cursor button 304 on the front panel 300 are pressed.
  • the cursor 530 moves to the right, as shown in FIG. 5B.
  • the cursor 530 moves to the left, as shown in FIG. 5A.
  • the program display unit 402a when the OK button 305 on the front panel 300 is pressed, the program display unit 402a notifies the playback unit 402b of the identifier of “channel 1”.
  • the program display unit 402a When the OK button 305 on the front panel 300 is pressed in the state of FIG. 5B, the program display unit 402a notifies the reproduction unit 402b of the identifier of “channel 2”.
  • the program display unit 402 a periodically stores program information to be displayed in the second memory 203 through the demultiplexing means 205. In general, it takes time to acquire program information from a broadcasting station.
  • the EPG button 307 of the input unit 201 is pressed, the program information can be quickly displayed by displaying the program information stored in advance in the second memory 203.
  • FIG. 6 is a diagram illustrating an example of program information stored in the second memory 203.
  • Program information is stored in a table format.
  • a column 601 is a channel identifier.
  • a column 602 is a program name.
  • Column 603 is the broadcast start time of the program, and column 604 is the broadcast end time.
  • a column 605 represents the audio type of the program, and monaural audio, stereo audio, and 5.1 channel audio are respectively expressed as “monaural”, “stereo”, and “5.1”.
  • a column 606 represents the type of program.
  • the normal program is blank, “movie” represents a movie, and “spo” represents a sports program.
  • Each row of rows 611 to 614 represents one piece of program information.
  • one piece of program information is a set of channel identifier, program name, broadcast start time, broadcast end time, and program audio type.
  • the line 611 includes a channel identifier “1”, a program name “News 9”, a broadcast start time “9:00”, a broadcast end time “10:30”, an audio type “monaural”, and a program type “normal”. It is a group including
  • the playback unit 402b plays back a channel using the received channel identifier. That is, the video and audio constituting the channel are reproduced.
  • the relationship between the channel identifier and the channel is stored in advance in the second memory 203 as channel information.
  • FIG. 7 is a diagram illustrating an example of channel information stored in the second memory 203.
  • Channel information is stored in tabular form.
  • a column 701 is an identifier of the channel.
  • a column 702 is a channel name.
  • a column 703 is tuning information.
  • the tuning information includes a frequency, a transfer rate, a coding rate, and the like, and is a value given to the receiving unit 204.
  • Column 704 is a program number. The program number is a number for identifying a PMT defined in the MPEG2 standard. The PMT will be described later.
  • Each row of rows 711 to 714 is a set of an identifier, a channel name, and tuning information of each channel.
  • the row 711 is a set including an identifier “1”, a channel name “channel 1”, a frequency “150 MHz” as tuning information, and a program number “101”.
  • the playback unit 402b passes the received channel identifier to the service manager 404 as it is to play back the channel.
  • the playback unit 402b receives a notification corresponding to the pressed cursor button from the input unit 201 through the CPU 212, and plays back. Change the current channel.
  • the up cursor button 301 is pressed, a channel having a channel identifier that is one smaller than the channel currently being played back is played back, and when the down cursor button 302 is pressed, a channel identifier that is one channel larger than the channel currently being played back is played back. Play the channel.
  • the playback unit 402b stores the identifier of the channel currently being played back in the second memory 203.
  • FIG. 8A, 8B, and 8C are diagrams showing examples of channel identifiers stored in the second memory 203.
  • FIG. 8A the identifier “3” is stored, and referring to FIG. 7, it is shown that the channel with the channel name “TV 3” is being reproduced.
  • the playback unit 402b refers to the channel information of FIG. 7, and in the table, the channel name “channel name“ having an identifier one smaller than the channel currently being played back ”
  • the identifier “2” of the channel name “channel 2” is delivered to the service manager 404.
  • FIG. 8B shows a state where the channel identifier has been rewritten.
  • the playback unit 402b refers to the channel information of FIG. 7, and is a channel having an identifier that is one greater than the channel currently being played in the table.
  • the identifier “4” of the channel name “TV Japan” is delivered to the service manager 404.
  • the channel identifier stored in the second memory 203 is rewritten to “4”.
  • FIG. 8B shows a state where the channel identifier has been rewritten. Since the channel identifier is stored in the second memory 203, it is saved even when the data transmission apparatus 101 is turned off.
  • the playback unit 402b reads the channel identifier stored in the second memory 203 when activated when the data transmission apparatus 101 is powered on. Then, the channel identifier is delivered to the service manager. As a result, the data transmitting apparatus 101 can start playback of the last channel that was played back during the previous operation when the power is turned on.
  • the Java VM 403 is a Java virtual machine that sequentially analyzes and executes a program written in the Java (TM) language.
  • a program written in the Java language is compiled into an intermediate code called byte code that does not depend on hardware.
  • the Java virtual machine is an interpreter that executes this bytecode.
  • Some Java virtual machines also translate the bytecode into an execution format that can be understood by the CPU 212, and then deliver the code to the CPU 212 for execution.
  • the Java VM 403 is activated by designating a Java program to be executed by the kernel 401a.
  • the kernel 401a designates the service manager 404 as a Java program to be executed.
  • Java Language Specification (ISBN 0-201-63451-1)”. The details are omitted here.
  • Java Virtual Machine Specification (ISBN 0-201-6451-X)”. The details are omitted here.
  • the service manager 404 is a Java program written in the Java language, and is sequentially executed by the Java VM 403.
  • the service manager 404 can call or be called by another subprogram not described in the Java language through JNI (Java Native Interface).
  • JNI is also described in many books such as the book “Java Native Interface”. The details are omitted here.
  • the service manager 404 receives the channel identifier from the playback unit 402b through JNI.
  • the service manager 404 hands over the channel identifier to the Tuner 405c in the Java library 405 and requests tuning.
  • the Tuner 405c refers to channel information stored in the second memory 203 and acquires tuning information.
  • the Tuner 405c refers to the row 712 in FIG. 7 and acquires the corresponding tuning information “156 MHz,”.
  • the Tuner 405c delivers tuning information to the receiving unit 204 through the tuner 401b1 of the library 401b of the OS 401.
  • the receiving unit 204 demodulates the signal transmitted from the broadcasting station in accordance with the given tuning information and passes it to the demultiplexing means 205.
  • the service manager 404 requests the CA 405d in the Java library 405 for descrambling.
  • the CA 405d gives information necessary for decryption to the descrambler 206 through the restriction release 401b2 of the library 401b of the OS 401.
  • the descrambler 206 decodes the signal given from the receiving unit 204 based on the given information and passes it to the TS decoder 207.
  • the service manager 404 gives a channel identifier to the JMF 405a in the Java library 405, and requests video / audio reproduction.
  • the JMF 405a first acquires a packet ID for specifying video and audio to be reproduced from the PAT and PMT.
  • PAT and PMT are tables defined in the MPEG2 standard and representing the program structure in the MPEG2 transport stream, which are embedded in the payload of packets included in the MPEG2 transport stream and transmitted together with audio and video. It is. For details, refer to the specifications. Here, only an outline will be described.
  • PAT is an abbreviation of Program Association Table, and is stored and transmitted in a packet with a packet ID “0”.
  • the JMF 405a designates the packet ID “0” to the demultiplexing unit 205 through the library 401b of the OS 401 in order to acquire the PAT.
  • the demultiplexing means 205 performs filtering with the packet ID “0” and passes it to the CPU 212, so that the JMF 405a collects the PAT packets.
  • FIG. 9 is a diagram schematically showing an example of collected PAT information.
  • a column 901 is a program number.
  • a column 902 is a packet ID. The packet ID in column 902 is used to obtain the PMT.
  • Rows 911 to 913 are a set of channel program numbers and corresponding packet IDs. Here, three channels are defined.
  • a row 911 defines a set of a program number “101” and a packet ID “501”. Now, assuming that the identifier of the channel given to the JMF 405a is “2”, the JMF 405a refers to the row 912 in FIG. 9 and obtains the corresponding program number “102”, and then the PAT row in FIG. Referring to 912, the packet ID “502” corresponding to the program number “102” is acquired.
  • PMT is an abbreviation of Program Map Table, and is stored and transmitted in a packet with a packet ID defined by PAT.
  • the JMF 405a designates the packet ID to the demultiplexing unit 205 through the library 401b of the OS 401 in order to acquire the PMT.
  • the designated packet ID is “502”.
  • the demultiplexing means 205 performs filtering with the packet ID “502” and passes it to the CPU 212, so that the JMF 405a collects the PMT packets.
  • FIG. 10 is a diagram schematically showing an example of collected PMT information.
  • a column 1001 is a stream type.
  • a column 1002 is a packet ID. In the packet with the packet ID specified in the column 1002, information specified by the stream type is stored in the payload and transmitted.
  • a column 1003 is supplementary information.
  • Rows 1011 to 1014 are a set of packet ID and type of information being transmitted, which is called an elementary stream.
  • a row 1011 is a set of a stream type “voice” and a packet ID “5011”, and represents that voice is stored in the payload of the packet ID “5011”.
  • the JMF 405a acquires video and audio packet IDs to be reproduced from the PMT. Referring to FIG. 10, JMF 405 a obtains audio packet ID “5011” from row 1011 and video packet ID “5012” from row 1012.
  • the JMF 405a delivers the acquired audio packet ID and video packet ID to the AV playback 401b3 of the library 401b of the OS 401.
  • the AV playback 401 b 3 gives the received audio packet ID and video packet ID to the TS decoder 207.
  • the TS decoder 207 performs filtering with the given packet ID.
  • the packet with the packet ID “5011” is delivered to the audio output unit 209
  • the packet with the packet ID “5012” is delivered to the video output unit 208.
  • the audio output unit 209 converts the given packet as appropriate (for example, digital-analog conversion) and outputs it.
  • the video output unit 208 appropriately converts a given packet (for example, digital-analog conversion) and outputs it.
  • the service manager 404 gives a channel identifier to the AM 405b in the Java library 405, and requests data broadcast reproduction.
  • the data broadcast reproduction is to extract a Java program included in the MPEG2 transport stream and cause the Java VM 403 to execute it.
  • a method for embedding a Java program in an MPEG2 transport stream a method called DSMCC described in the MPEG standard document ISO / IEC13818-6 is used.
  • DSMCC method defines a method for encoding a file system composed of directories and files used in a computer in a packet of an MPEG2 transport stream.
  • AIT is an abbreviation of Application Information Table defined in Chapter 10 of the DVB-MHP standard (formally, ETSI TS 101 812 DVB-MHP specification V1.0.2).
  • AM 405b first acquires a PAT and a PMT in the same manner as JMF 405a in order to acquire an AIT, and acquires a packet ID of a packet in which the AIT is stored. If the given channel identifier is “2” and the PAT of FIG. 9 and the PMT of FIG. 10 are transmitted, the AM 405b acquires the PMT of FIG. 10 in the same procedure as the JMF 405a.
  • the AM 405b extracts the packet ID from the elementary stream having the stream type “data” and the supplementary information “AIT” from the PMT. Referring to FIG. 10, the elementary stream in row 1013 corresponds to the packet ID “5013”.
  • the AM 405 b gives the AIT packet ID to the demultiplexing means 205 through the library 401 b of the OS 401.
  • the demultiplexing unit 205 performs filtering with the given packet ID and delivers it to the CPU 212. As a result, the AM 405b can collect AIT packets.
  • FIG. 11 is a diagram schematically showing an example of collected AIT information.
  • a column 1101 is an identifier of the Java program.
  • a column 1102 is control information of the Java program. The control information includes “autostart”, “present”, “kill”, etc., “autostart” means that the data transmitting apparatus 101 automatically executes this program immediately, and “present” does not automatically execute. "Kill” means to stop the program.
  • a column 1103 is a DSMCC identifier for extracting a packet ID including a Java program in the DSMCC format.
  • a column 1104 is a program name of the Java program. Lines 1111 and 1112 are information sets of Java programs.
  • the Java program defined in the row 1111 is a set of an identifier “301”, control information “autostart”, a DSMCC identifier “1”, and a program name “a / TopXlet”.
  • the Java program defined in the row 1112 is a set of an identifier “302”, control information “present”, a DSMCC identifier “1”, and a program name “b / GameXlet”.
  • the two Java programs have the same DSMCC identifier, which indicates that two Java programs are included in a file system encoded in one DSMCC format.
  • only four pieces of information are defined for the Java program, but more information is actually defined. Refer to the DVB-MHP standard for details.
  • the AM 405b finds the “autostart” Java program from the AIT, and extracts the corresponding DSMCC identifier and Java program name. Referring to FIG. 11, the AM 405b extracts the Java program in the row 1111 and acquires the DSMCC identifier “1” and the Java program name “a / TopXlet”.
  • the AM 405b obtains the packet ID of the packet storing the Java program in the DSMCC format from the PMT, using the DSMCC identifier obtained from the AIT. Specifically, the packet ID of the elementary stream in which the stream type is “data” in the PMT and the DSMCC identifier of the supplemental information matches is acquired.
  • the elementary stream in the row 1014 matches, and the AM 405b extracts the packet ID “5014”.
  • AM 405b designates the packet ID of the packet in which data is embedded in the DSMCC method in the demultiplexing means 205 through the library 401b of the OS 401.
  • the packet ID “5014” is given.
  • the demultiplexing unit 205 performs filtering with the given packet ID and delivers it to the CPU 212.
  • the AM 405b can collect necessary packets.
  • the AM 405b restores the file system from the collected packet according to the DSMCC method, and stores it in the first memory 202 or the second memory 203.
  • the extraction of data such as a file system and the storage of the data in the first memory 202 or the second memory 203 is hereinafter referred to as download.
  • FIG. 12 is a diagram showing an example of a downloaded file system.
  • circles represent directories
  • squares represent files
  • 1201 is a root directory
  • 1202 is a directory “a”
  • 1203 is a directory “b”
  • 1204 is a file “TopXlet.class”
  • 1205 is a file “GameXlet.class”. is there.
  • the AM 405 b delivers the Java program to be executed from the file system downloaded to the first memory 202 or the second memory 203 to the Java VM 403. If the name of the Java program to be executed is “a / TopXlet”, the file “a / TopXlet.class” with “.class” added to the end of the Java program name is the file to be executed. “/” Is a delimiter between directories and file names. With reference to FIG. 12, the file 1204 is a Java program to be executed. Next, the AM 405 b delivers the file 1204 to the Java VM 403.
  • JavaVM 403 executes the delivered Java program.
  • the service manager 404 When the service manager 404 receives an identifier of another channel, the service manager 404 stops the execution of the video / audio and the Java program being played through each library included in the Java library 405 through each library also included in the Java library 405, Based on the newly received channel identifier, video / audio playback and Java program execution are performed.
  • the service manager 404 has a function of receiving a channel identifier from a Java program executed on the Java VM 403 as well as the playback unit 402b. Specifically, a Java language class and a method for receiving a channel identifier are provided. Upon receiving the channel identifier, the service manager 404 stops the execution of the video / audio and Java program currently being played back through each library included in the Java library 405 through each library also included in the Java library 405, and thereafter. Based on the newly received channel identifier, the new video / audio is reproduced and the Java program is executed.
  • FIG. 13 is a diagram illustrating an example of a form in which the data transmission apparatus 101 stores multimedia data in the second memory 203.
  • the data transmitting apparatus 101 stores multimedia data and its attribute information (content attribute information), an attribute information table, a URI table, and a resume position information table in the second memory 203.
  • reference numerals 1301, 1302,... Indicate multimedia data, 1311, 1312,... Indicate multimedia data attribute information (content attribute information), 1321 indicates an attribute information table
  • 1331 indicates a URI table
  • 1332 Represents a restart position information table.
  • the multimedia data 1301, 1302,... Are encoded multimedia data in the MPEG transport stream format.
  • the content attribute information 1311, 1312,... Is additional information such as a title of each multimedia data.
  • the content attribute information 1311 represents the attribute information of the multimedia data 1301, and the content attribute information 1312 represents the attribute information of the multimedia data 1302.
  • FIG. 14 is a diagram illustrating an example of content attribute information in the present embodiment.
  • the content attribute information is represented by text defined in XML (Extensible MarkupELanguage).
  • the content identifier is a ContentID that is an element of content attribute information
  • the ParentID is an element of content attribute information
  • the ID of a container that contains the content is a MultimediaName
  • the file name is an element of content attribute information.
  • the file name of the data is ChannelID, which is an element of the content attribute information
  • the identifier of the channel on which the program is broadcast as shown in the column 601 of FIG. 6 is the ProgramNo.
  • the type of the program, the date and time when the program was broadcast in the Date that is the element of the content attribute information, the date and time that the program was recorded in the RecordDate that is the element of the content attribute information, and the ocap that is the element of the content attribute information PresentationPoint (resumption position information) represents a resumption position for realizing the resume of the multimedia data and its resumption position identifier.
  • the content attribute information is not limited to such an XML configuration, but may be recorded in another format, for example, binary data.
  • the attribute information table 1321 is a correspondence table between content identifiers and files in which content attribute information represented by the identifiers is recorded.
  • FIG. 15 is a diagram illustrating an example of the attribute information table 1321.
  • a column 1501 represents a content identifier
  • a column 1502 represents a file name of content attribute information.
  • Lines 1511 to 1513 are sets of file names of content attribute information corresponding to content identifiers. From the row 1511, it can be read that the content attribute information of the identifier “ContentID00” is recorded in the file “0001.attr”.
  • the URI table 1331 indicates correspondence between content identifiers and URIs (Uniform Resource Identifiers) for accessing the content represented by the identifiers.
  • FIG. 16 is a diagram illustrating an example of the configuration of the URI table 1331.
  • a column 1601 indicates each content identifier
  • a column 1602 indicates a URI for accessing each content.
  • Each row 1611 to 1613 represents a set of content identifier and URI.
  • the row 1611 indicates that the URI of the content with the identifier “ContentID00” is “http://192.168.0.3/AVData/0001.m2ts”.
  • the resume position information table 1332 will be described later.
  • the service manager 404 requests the Rec 405j in the Java library 405 to store the multimedia data.
  • Rec 405j like JMF 405a and AM 405b, acquires PAT and PMT, and acquires packet data of video data, audio data, and section data related to the stored program.
  • Rec 405j obtains the PMT of FIG. 10 in the same procedure as JMF 405a.
  • the data to be stored is all the data described in the PMT in FIG.
  • Rec 405j gives these packet IDs to TS decoder 207 through library 401b of OS 401 and causes TS multiplexer 210 to output them.
  • the TS decoder 207 performs filtering with the given packet ID, and delivers the data to the TS multiplexer 210. Note that the section data is assigned a version number, and the TS decoder 207 may output the same type of data only once for each version number and then filter the data.
  • Rec 405j gives the TS multiplexer 210 how many types of data are sent through the library 401b of the OS 401, and configures the MPEG2 transport stream from the data delivered from the TS decoder 207.
  • the TS multiplexer 210 delivers the constructed MPEG transport stream to the CPU 212.
  • Rec 405j requests IO 405g in Java library 405 to write MPEG transport stream received from TS multiplexer 210 by CPU 212 to second memory 203. Further, Rec 405j requests service manager 404 to receive the channel identifier of the program, requests IO 405g, and stores the multimedia data stored in the second memory 203 among the program information shown in FIG. The program information of the one corresponding to is read. Further, an identifier is issued to the stored multimedia data, content attribute information is created from the acquired program information and the file name storing the multimedia data, and the IO 405g is requested to store the attribute information in the second memory 203. Write to. Further, the Rec 405j requests the IO 405g to read the attribute information table 1321, updates the contents, requests the IO 405g to write to the second memory 203, and updates the attribute information table 1321.
  • the network library 405e in the Java library 405 receives a request from the data receiving apparatus connected to the network 104, and gives the identifier of the requested channel to the service manager 404.
  • the service manager 404 gives the received channel identifier to the Tuner 405c to request tuning, and further requests the CA 405d to descramble. Subsequently, the service manager 404 returns processing to the network library 405e.
  • the TS decoder 207 and the TS multiplexer 210 are controlled to create an MPEG transport stream from the video data, audio data, and section data of the program.
  • the network library 405e gives the destination address to the NET 401b4 of the library 401b of the OS 401. Subsequently, the network library 405e converts the MPEG2 transport stream received from the TS multiplexer 210 into a format according to the protocol of the application layer to be transmitted, and sequentially delivers it to the NET 401b4.
  • the application layer protocol is, for example, HTTP or RTP.
  • the NET 401b4 refers to the transmission destination address, converts the transferred data into an IP network packet, and transfers the packet to the network unit 211.
  • the network unit 211 converts the delivered data into a signal corresponding to the physical media of the connected network and outputs the signal.
  • the service manager 404 requests the IO 405g in the Java library 405 to read the attribute information table 1321 from the second memory 203, and searches for a file in which the content attribute information of the content identifier is recorded.
  • the attribute information table 1321 of FIG. 15 when the content identifier is “ContentID00”, the file corresponds to “0001.attr”.
  • the service manager 404 requests the IO 405 g to read a file in which the attribute information is recorded from the second memory 203.
  • the file name in which the multimedia data of the content is recorded is acquired from the read content attribute information. In the case of the content attribute information of FIG. 14, this file name is “0001.m2ts”.
  • the service manager 404 requests the IO 405g to read the MPEG transport stream from the multimedia data file.
  • the IO 405g reads data through the library 401b of the OS 401 and delivers it to the CPU 212.
  • the service manager 404 delivers the read MPEG transport stream to the demultiplexing unit 205 through the library 401 b of the OS 401.
  • the service manager 404 requests the CA 405d in the Java library to let the descrambler 206 pass through the data without descrambling.
  • the CA 405 d gives information to the descrambler 206 through the restriction release 401 b 2 of the library 401 b of the OS 401.
  • the descrambler 206 delivers the data delivered from the demultiplexing means 205 to the TS decoder 207 as it is.
  • the service manager 404 reads the channel identifier or program number from the read content attribute information, gives it to the JMF 405a in the Java library 405, and requests playback. Thereafter, video data and audio data can be reproduced by the same processing as that for the content received from the broadcast.
  • the service manager 404 gives a channel identifier or program number to the AM 405b in the Java library, and requests the reproduction of the data broadcast. Thereafter, the data broadcast can be reproduced by the same processing as the content received from the broadcast.
  • the Java library 405 is a set of a plurality of Java libraries stored in the second memory 203.
  • the Java library 405 includes JMF 405a, AM 405b, Tuner 405c, CA 405d, network library 405e, playback Lib 405f, IO 405g, AWT 405h, SI 405i, Rec 405j, and the like.
  • JMF 405a The functions of JMF 405a, AM 405b, Tuner 405c, CA 405d, and Rec 405j have already been described, and will be omitted.
  • the playback Lib 405f provides a Java language class and method (hereinafter referred to as Java API) for passing the identifier of the channel currently being stored stored in the second memory 203 to the Java program.
  • Java API Java language class and method
  • the IO 405g provides the Java program with a Java API for the Java program to write data to the second memory 203 or a Java API for reading the written data from the second memory 203.
  • the Java program can store arbitrary data in the second memory 203. Since the stored data does not disappear even when the data transmitting apparatus 101 is turned off, the data can be read again after the data transmitting apparatus 101 is turned on.
  • the AWT 405h provides a Java API for drawing by the Java program and receiving a key input notification from the input unit 201.
  • Java which is defined by “The Java class Libraries Second Edition, Volume 2” (ISBN0-201-31003-1).
  • awt package, java. awt. event package and other Java This corresponds to the awt subpackage.
  • detailed description is omitted.
  • SI405i provides a Java API for Java programs to acquire channel information and electronic program guide information. Specifically, there are Java TV specifications and the like.
  • an MPEG section filter API for obtaining raw binary data from an MPEG2 transport stream being broadcast is defined in the OCAP specification, and the Java application understands and handles the transmitted original electronic program data. You can also.
  • the network library 405e communicates with the data receiving apparatus 102 and the data receiving apparatus 103 connected to the network 104 through the NET 401b4 of the library 401b of the OS 401.
  • the communication includes content list and EPG transmission, multimedia data transmission from the data receiving device, transmission interruption, transmission restart, reception of transmission end request, and transmission of multimedia data.
  • FIG. 17 is a block diagram showing an example of the internal configuration of the network library 405e.
  • the network library 405e includes a control unit 1701, an action request reception response unit 1702, a content management unit 1703, a data request reception transmission unit 1704, and a resume position management unit 1705.
  • the network library 405e may include other functions related to the IP network. *
  • the control unit 1701 provides activation / deactivation of the server function of the data transmission apparatus 101 and processing of a request from the client.
  • the control unit 1701 provides a Java API to the downloaded Java application, that is, the server application, and the server function can start and stop the server function by calling the API.
  • the control unit 1701 performs processing using a library in the network library 405e such as the content management unit 1703 and the resume position management unit 1705 as necessary.
  • control unit 1701 when the control unit 1701 receives a request from the data reception device 102 and the data reception device 103 while the server function is being executed, the control unit 1701 performs processing corresponding to the request.
  • the action request reception response unit 1702 controls the network unit 211 through the NET 401b4 in the library 401b of the OS 401, and the CDS: Browse provided by the UPnP AV CDS service from the data receiving device connected to the designated network 104 Receives a request for CDS: UpdateObject.
  • the action request reception response unit 1702 receives CDS: Browse, the action request reception response unit 1702 notifies the content management unit 1703 of the received information.
  • the restart position management unit 1705 is notified and the restart position information table 1332 (or content attribute information) is updated. Then, processing corresponding to the received request is performed using the content management unit 1703 and the restart position management unit 1705, and a response message is generated and transmitted.
  • the content management unit 1703 manages the content stored in the second memory 203, generates and manages the content directory 2101 as shown in FIG. 21 in response to a request from the server application, and the content attribute assigned to each object Manage information.
  • the content management unit 1703 Since there is one root container 2102 per server according to the UPnP AV CDS specification, the content management unit 1703 generates the root container 2102 when the server unit is activated by the control unit 1701. Furthermore, the content management unit 1703 provides the Java API to the server application. The description of the Java API that adds content is omitted. In addition, an API for acquiring content and content attribute information can be acquired by using the Java API of the data receiving apparatus described later in the same manner, and thus description thereof is omitted here. Then, the server application requests the content management unit 1703 to add an object below the root container 2102 using the provided Java API, and the content management unit 1703 generates the content directory 2101 according to this request.
  • an initial value “ ⁇ 1” is set to ocap: PresentaionPoint indicating the restart position in the content attribute information held by the added object.
  • the content management unit 1703 may generate the content directory 2101 without going through the server application.
  • the content management unit 1703 when the content management unit 1703 receives the CDS: Browse action from the action request reception response unit 1702, the content management unit 1703 acquires the content identifier of the object specified by the CDS: Browse action and the BrowseFlag of the CDS: Browse.
  • BrowseFlag indicates either “information acquisition request for specified object” or “information acquisition request for child object of specified container”. Then, the information of the object having the acquired content identifier is requested to the IO 405g and read.
  • the network library 405e extracts information defined in UPnP AV CDS and DLNA from the read object information and defines it in UPnP AV CDS and DLNA.
  • the data is converted to the received format and transmitted to the requesting client, and the process is terminated.
  • the content management unit 1703 refers to each content attribute information in the attribute information table 1321, and the ParentID of the content attribute information and the CDS: Browse Compare the content identifiers of the containers specified in, and obtain a set of matching objects.
  • the content attribute information is converted into the UPnP AV CDS definition format and notified to the action request reception response unit 1702 as a response result of the CDS: Browse action.
  • FIG. 24 and FIG. 25 are diagrams showing examples of excerpts of responses of the CDS: Browse action.
  • the data request reception / transmission unit 1704 controls the network unit 211 through the NET 401b4 in the library 401b of the OS 401, and the multimedia data stored in the second memory 203 from the data reception device connected to the designated network 104.
  • the request to send is received.
  • the multimedia data is transmitted to the requesting data receiving apparatus in accordance with the received request.
  • the data request reception / transmission unit 1704 analyzes the request message transmitted from the requesting data reception device, and acquires the URI of the requested content. Subsequently, the URI table 1331 is read out by requesting the IO 405g. The identifier of the requested content is obtained from the read URI table 1331 and the URI acquired from the request message. For example, in the URI table shown in FIG. 16, if the requested URI is “http://192.168.0.3/AVData/0001.m2ts”, the content identifier “ContentID00” is obtained from the contents of the row 1611. It is done.
  • the data request reception / transmission unit 1704 requests the IO 405g to read the content attribute information (file) of the acquired file name.
  • the file name storing the multimedia data of the content is acquired from FileName.
  • the file name of the multimedia data is “0001.m2ts”.
  • the data request reception / transmission unit 1704 requests the IO 405g to confirm the existence of the acquired multimedia data with the file name. If it does not exist, an error message is generated and transmitted to the requesting data receiving apparatus, and the process ends. If it exists, the content attribute information and information such as the file size obtained by requesting the IO 405g are collected to generate a header of the reply message and send it to the requesting data receiving apparatus. Subsequently, the IO 405g is requested to transmit the read data to the requesting data receiving apparatus while sequentially reading the multimedia data. At this time, if the range of data to be acquired using the TimeSeekRange.dlna.org header or the like is set in the request of the requesting data receiving apparatus, multimedia data is transmitted from the designated position.
  • the resumption position management unit 1705 performs processing (content attribute information update) such as addition, change, and deletion of ocap: PresentationPoint (resumption position information) of the content attribute information.
  • the resume position management unit 1705 receives the content identifier, the pre-update ocap: PresentationPoint, and the post-update ocap: PresentationPoint from the action request reception response unit 1702. If the resume position identifier is not set in the information received from the action request reception response unit 1702, the resume position identifier is set.
  • information on the data receiving device that sent the CDS: UpdateObject request (information unique to the data receiving device such as FriendlyName, UUID, IP address, MAC address, etc., or on the data receiving device such as organization_id, application_id) Information specific to the client application that runs) and the date and time when CDS: UpdateObject was received.
  • the resume position management unit 1705 first obtains the resume position information table 1332 and obtains resume position information related to the content identifier received from the action request reception response unit 1702. If the resume position identifier is set in the content attribute information before the update, the resume position having the matching resume position identifier is updated from the associated resume position information.
  • the restart position management unit 1705 can update the restart position information table 1332 managed by the restart position management unit 1705 by updating the content attribute information.
  • FIG. 18 is a diagram showing the resume position information table 1332 in the initial state.
  • 18 includes a content identifier, 1802 a resume position, 1803 a resume position identifier, and each of the lines 1811 to 1813 includes attributes of resume position information of multimedia data recorded in the second memory 203. Indicates.
  • the resume position information table 1332 since the resume position information table 1332 is in an initial state, all the resume positions 1802 are set to “ ⁇ 1”, and the resume position identifier 1803 is not set.
  • the resuming position management unit 1705 updates the resuming position information before updating, which is associated with the content identifier “ContentID00” and is set to the initial value “ ⁇ 1” because the resuming position is not yet set.
  • the resumption position information is “00:30:00” and the resumption position identifier is “LivingRoom”.
  • the resume position management unit 1705 acquires the resume position information table of FIG. 18 and searches for the content identifier “ContentID00” designated by the action request reception response unit 1702. At this time, the restart position management unit 1705 acquires 1811 rows having the same content identifier in the 1801 column, and sets updated restart position information in the columns 1802 and 1803. Here, “00:30:00” is set in the column 1802, and “LivingRoom” is set in the column 1803 (row 1911 in FIG. 19).
  • deletion and change are realized by setting the resuming position and resuming position identifier before updating in the content attribute information before updating, and setting the resuming position and resuming position identifier to be changed in the content attribute information after updating. it can.
  • download applications all downloaded applications (hereinafter referred to as download applications) existing on the network can update the resume position information table 1332.
  • download applications that operate on all data reception apparatuses are not always the same download application. For this reason, it is possible to envisage a request for restricting updates by other applications for the resume position and the resume position identifier set by an application with high priority.
  • the resume position management unit 1705 adds the application information to the resume position identifier, so that the resume position management unit 1705 makes a request from the application information that does not match.
  • the resumption position information table 1332 can be controlled not to be updated.
  • FIG. 20 is a diagram illustrating an example of the resume position information table 1332 that holds application identifiers.
  • Application information is held in columns 2004 to 2006.
  • Organization_id is set in the 2004 column
  • Application_id is set in the 2005 column
  • Group_identifier is set in the 2006 column, but the application information to be used may be a part of them.
  • other expression methods such as Application_name may be used.
  • the resumption position management unit 1705 When the resumption position management unit 1705 receives a resumption position information table update request from the action request reception response unit 1702, the resumption position management unit 1705 also receives application information that operates on the data receiving apparatus that requested the update, and the application information is resumed. If it is different from the application information of the data receiving device that sets the resume position of the content recorded in the position information table 1332, an error is sent to the action request reception response unit 1702 without updating the resume position and the resume position identifier. By returning it, it is possible to limit the application that updates the restart position.
  • resume position information table 1332 stored in the second memory 203
  • any method that allows the resume position management unit 1705 to manage the resume position and the resume position identifier may be used.
  • FIG. 26 is a block diagram showing the relationship between the components of the data receiving apparatus 102 and the data receiving apparatus 103 in the present embodiment.
  • Each of the data receiving apparatuses 102 and 103 includes an input unit 2601, a first memory 2602, a second memory 2603, a demultiplexing unit 2604, a TS decoder 2605, a video output unit 2606, an audio output unit 2607, a network unit 2608, and a CPU 2609. Composed.
  • the input unit 2601, the first memory 2602, and the second memory 2603 are the same as the input unit 201, the first memory 202, and the second memory 203 of the data transmission device 101 in the above-described embodiment.
  • the data receiving apparatus 102 and the data receiving apparatus 103 store program information such as a multimedia data identifier, title, broadcast date and time, broadcast channel, etc. in the second memory 2603 such as a list of contents and EPG data received from the data transmission apparatus 101. Accumulate.
  • the demultiplexing means 2604 receives the MPEG transport stream from the CPU 2609, extracts information designated from the CPU 2609, and delivers it to the CPU 2609. In addition, the MPEG transport stream is transferred to the TS decoder 2605 as it is.
  • the TS decoder 2605 receives an identifier of audio data or video data from the CPU 2609. Further, data corresponding to the identifier of the received audio data or video data is extracted from the stream received from the demultiplexing means 2604. The extracted video data is transferred to the video output unit 2606 and the audio data is transferred to the audio output unit 2607.
  • the video output unit 2606 and the audio output unit 2607 are the same as the video output unit 208 and the audio output unit 209 of the data transmission apparatus 101 in the present embodiment described above.
  • the network unit 2608 includes a network interface, converts the data received from the CPU 2609 into a signal corresponding to the physical medium of the network to which the network interface is connected, and outputs the signal.
  • a signal is received from the network interface, converted into a packet defined by the IP network, and delivered to the CPU 2609.
  • the CPU 2609 controls the demultiplexing unit 2604, the TS decoder 2605, and the network unit 2608 by executing a program stored in the second memory 2603.
  • FIG. 27 is a configuration diagram illustrating an example of a program stored in the second memory 2603 and executed by the CPU 2609.
  • the program 2700 includes a plurality of subprograms, and specifically includes an OS 2701, a Java VM 2702, a service manager 2703, and a Java library 2704.
  • the OS 2701 is a subprogram that is activated by the CPU 2609 when the data receiving device 102 and the data receiving device 103 are powered on.
  • OS is an abbreviation for operating system, and Linux is an example.
  • the OS 2701 is a general term for known techniques including a kernel 2701a and a library 2701b that execute other subprograms in parallel, and detailed description thereof is omitted.
  • the kernel 2701a of the OS 2701 executes Java VM 2702 as a subprogram.
  • the library 2701b provides these subprograms with a plurality of functions for controlling the components held by the data receiving apparatus 102 and the data receiving apparatus 103.
  • the library 2701b includes a restriction release 2701b1, an AV playback 2702b2, and a NET 2701b3 as examples of functions.
  • Restriction release 2701b1 receives information from other subprograms or CP2704c of Java library 2704, decrypts encrypted data received from the network, or enables AV playback 2701b2 to play back multimedia data received from the network. Or allow it.
  • AV playback 2702b2 receives audio packet ID and video packet ID from other subprograms and JMF 2704a of Java library 2704.
  • the received audio packet ID and video packet ID are given to the TS decoder 2605.
  • the TS decoder 2605 performs filtering based on the given packet ID, thereby realizing video / audio reproduction.
  • the NET 2701b3 creates a packet of a protocol below the application layer defined by the IP network from data received from another subprogram or the network library 2704d of the Java library 2704.
  • the protocol below the application layer is, for example, a TCP packet, a UDP packet, or an IP packet.
  • a message and data are transmitted to other devices via the network 104.
  • the NET 2701b3 receives a message from another device via the network 104, the NET 2701b3 converts the message into a packet of an application layer protocol and delivers it to another subprogram or the network library 2704d of the Java library 2704.
  • Examples of the application layer protocol include HTTP, RTSP, and RTP.
  • Java VM 2702 is the same as Java VM 403 of data transmission apparatus 101 in the above-described embodiment.
  • the service manager 2703 is the same as the service manager 404 of the data transmission apparatus 101 in the present embodiment described above except for the following differences.
  • the service manager 404 receives the channel identifier from the playback unit 402b of the EPG 402, passes the identifier to the Tuner 405c, tunes it, requests the CA 405d to perform descrambling, and gives the JMF 405a the channel identifier to play the video / audio. Was to ask.
  • the service manager 2703 receives the content identifier from the List 2704i in the Java library 2704, delivers the content identifier and information such as the device storing the content identifier to the network library 2704d, receives the stream from the device, Subsequently, a content identifier is given to the JMF 2704a in the Java library 2704 to request video / audio reproduction.
  • List 2704i will be described later.
  • the service manager 2703 gives the network library 2704d in the Java library 2704 information such as the content identifier and the IP address of the data transmitting apparatus 101, and information such as the URI for accessing the content, and the data transmitting apparatus 101 Is requested to issue a multimedia data transmission request to and receive the multimedia data. Further, the network library 2704d is requested to receive the multimedia data transmitted from the data transmitting apparatus 101. Upon receiving the request, the network library 2704d connects to the data transmission apparatus 101 and issues a multimedia data transmission request. Then, the network library 2704d delivers the data transmitted from the data transmitting apparatus 101 to the CPU 2609. As a result, the received multimedia data can be delivered to the demultiplexing means 2604, and the multimedia data can be reproduced.
  • the Java library 2704 is a set of a plurality of Java libraries stored in the second memory 2603.
  • the Java library 2704 includes JMF2704a, AM2704b, CP2704c, network library 2704d, playback Lib2704e, List2704i, and the like.
  • JMF2704a, AM2704b, playback Lib2704e, IO2704f, AWT2704g, and SI2704h are the same as JMF405a, AM405b, playback Lib405f, IO405g, A405405, and SI405i in the Java library 405 of the data transmission apparatus 101 in the above-described embodiment, respectively. belongs to.
  • CP 2704c manages rights processing of the multimedia data such as copy control and accounting of multimedia data transmitted via the network 104.
  • Copy control refers to copy control information included in section information of the transmitted transport stream, and rewrites it if necessary.
  • Billing or the like is performed by communicating with the data transmission apparatus 101 through the network library 2704d.
  • List 2704i displays a list of multimedia contents stored in EPG and data transmission apparatus 101 in data transmission apparatus 101, and selects one multimedia content from the list by a user operation accepted by input unit 2601, The manager 2703 is requested to play back. At this time, the information of the data transmitting apparatus 101 is also delivered to the service manager 2703.
  • the EPG in the data transmission apparatus 101 and a list of contents stored in the data transmission apparatus can be acquired through the network library 2704d. Since these pieces of information can be realized by a method defined in UPnP AV, detailed description is omitted.
  • the network library 2704d communicates with the data transmission apparatus 101 connected to the network 104 through the NET 2701b3 of the OS 2701. Communication with the data transmission apparatus 101 is transmission / reception of a list of multimedia data, issuance of a transmission request for multimedia data, and reception of the multimedia data.
  • FIG. 28 is a block diagram showing an example of the internal configuration of the network library 2704d.
  • the network library 2704d includes a control unit 2801, a server management unit 2802, an action transmission / reception unit 2803, a content management unit 2804, a playback position determination unit 2805, and a data transmission / reception unit 2806.
  • the network library 2704d may include other functions related to the IP network.
  • the control unit 2801 provides a Java API to a client application, which is a downloaded Java application, and the client application calls the API to search for a server or provided content, play a selected content, and so on as a client function. Is realized.
  • the control unit 2801 uses the server management unit 2802, the action transmission / reception unit 2803, the content management unit 2804, the playback position determination unit 2805, the data transmission / reception unit 2806, the other Java library 2704, and the library 2701b of the OS 2701 to perform these processes. I do.
  • the server management unit 2802 manages information of a server existing on the network 104 such as the data transmission apparatus 101 discovered by the UPnP DA function, and accesses the server by a function such as UPnP AV CDS. .
  • the discovery of the server and the service provided by the server and the acquisition of the information are irrelevant to the present invention and will not be described in detail.
  • the server management unit 2802 provides a Java API to the client application. The Java API will be described later.
  • the action transmission / reception unit 2803 controls the network unit 2608 through the NET 2701b3 of the library 2701b of the OS 2701, the connection with the external device connected to the designated network 104, and the CDS: A process of transmitting CDS: UpdateObject to the data transmitting apparatus 101 and receiving the response is performed.
  • the content management unit 2804 manages information on the content provided by the server, which has been acquired by the function of UPnP AV AV CDS as described above. Therefore, the content management unit 2804 manages a set of a resume position and a resume position identifier for each content from the content information (content attribute information) provided by the acquired server. For example, when a Browse result as shown in FIG. 25 is received, the content management unit 2804 generates a restart position information table related to the content and manages it for each content.
  • FIG. 29 is a diagram showing an example of the restart position information table generated by the content management unit 2804.
  • a column 2901 indicates a restart position
  • a column 2902 indicates a restart position identifier.
  • the content management unit 2804 provides a Java API to the client application. The Java API will be described later.
  • the playback position determination unit 2805 refers to the content attribute information (or the restart position information table) held by the content management unit 2804, and determines the playback position currently used from the restart position.
  • the playback position determination unit 2805 acquires the restart position information table from the content management unit 2804, presents the information of the restart position information table to the user, and the user selects it. In this case, the playback position may be set.
  • the data transmission / reception unit 2806 controls the network unit 2608 through the NET 2701b3 of the library 2701b of the OS 2701, and connects to the external device connected to the designated network 104 and data from the reproduction position determined by the reproduction position determination unit 2805. Send and receive acquisition requests. Then, by transmitting the received data to the TS decoder 2605 and the like, reproduction from the reproduction position determined by the reproduction position determination unit 2805 is performed.
  • FIG. 30 is a diagram illustrating an example of a Java API provided by the server management unit 2802. However, only those related to the present invention are illustrated, and other APIs may be provided.
  • the method getDevice shown in (1) of FIG. 30 returns device information on the discovered network 104.
  • a device having a server function transmits device information of the device having the server function to a device connected to the network 104. Therefore, only the device information of the device having the server function can be acquired here.
  • the application can also set a friendly name that is an attribute value of the terminal itself. Therefore, the data receiving apparatuses 102 and 103 can provide the client application with device information obtained by adding the device information of the device itself to the device information of the device having a server function connected to the network 104.
  • the return value is an array of instances of a class that implements the Device interface described below.
  • the client device when the information of the client device connected to the network 104 can be acquired, the client device may be included in the device information array as a return value. Thereby, the client application can know information of other data receiving apparatuses connected to the network. By doing so, for example, information of the data receiving device 103 to be reproduced next can be set as a resume position identifier.
  • the interface Device shown in (2) of FIG. 30 defines a device on the network, and FIG. 31 shows an API related to the present invention.
  • the interface ContentServer shown in (3) of FIG. 30 defines an interface for accessing the multimedia server, and FIG. 32 shows an API related to the present invention.
  • FIG. 31 is a diagram illustrating an example of a Device interface.
  • a method getContentServer acquires ContentServer supported by the Device. Returns NULL if it does not exist.
  • the method isLocal returns True if the Device indicates device information of the own terminal, and returns False if the Device indicates device information of a device connected via the network 104.
  • the method setDeviceProperty is for setting a property value, which is device information, to the Device.
  • the argument Key represents the property name set in Device, and the argument Value represents the value to be set. This makes it possible to set device attribute information such as the device name that is easy for applications to understand, and even if the manufacturer of the data receiver is different, it is possible to set the attribute information according to a unified policy become.
  • the Friendlyly Name of the device can be set as LivingRoom.
  • the client application can always set the installation location in Friendly Name without depending on the manufacturer or model of the data receiving apparatus.
  • the method setDeviceProperty is an API having Key and Value as arguments, but a method of preparing a method for each attribute information to be set like setFriendlyName (String (Value) may be used.
  • the method setDeviceProperty can be set only when isLocal is True, and cannot be set when isLocal is False. Therefore, if the method setDeviceProperty cannot be set, an exception may be thrown to notify that it cannot be set, and the return value is changed to something that can represent the success or failure of the process, such as Boolean, and the result is returned as a return value.
  • a notification method may be used.
  • FIG. 32 shows an example of the ContentServer interface. This defines only the interfaces relevant to the present invention.
  • a method getRootContainer acquires the root container of the multimedia server.
  • the Container interface will be described later.
  • the network library 2704d requests the action transmission / reception unit 2803 to generate a Browse action message for requesting root container information to the multimedia server, and transmits the message to the multimedia server.
  • the Browse action is defined in 2.7.4 of ContentDirectory: 1 Service Template Version 1.01 For UPnP (TM) Version 1.0, June 25, 2002 [Non-Patent Document 1] which is the UPnP AV CDS standard. See Non-Patent Document 1 for details.
  • the network library 2704d requests the action transmission / reception unit 2803 to receive a response message from the multimedia server, interprets the response message, and acquires route container information. Subsequently, the network library 2704d delivers the root container information to the content management unit 2804, and generates an instance of a class that implements a Container interface that includes the extracted attribute information as the root container information. Then, the network library 2704d returns the generated instance as a return value. If the response message is an error, the network library 2704d returns null.
  • the method requestBrowse in FIG. 32 issues a Browse action with a condition given by an argument to the multimedia server to acquire information from the multimedia server.
  • the return value is an array of instances of the class that implements the CDSObject interface, including information about the received object.
  • the CDSObject interface will be described later.
  • the argument of this method has the same format as that used in the Browse action of UPnP AV CDS.
  • the argument objectID of this method corresponds to the argument ObjectID of the Browse action.
  • the argument flag corresponds to BrowseFlag
  • the argument filter corresponds to Filter
  • the argument startIndex corresponds to StartIndex
  • the argument requestedCount corresponds to RequestedCount
  • sortCriteria corresponds to SortCriteria.
  • the network library 2704d passes arguments objectID, flag, filter, startIndex, requestCount, and sortCriteria to the action transmission / reception unit 2803, generates a message for the Browse action, and sends the message to the multimedia server. Send. Subsequently, the network library 2704d requests the action transmission / reception unit 2803 to receive a response message from the multimedia server, interprets the content, and acquires information on the object specified by the argument. Subsequently, the network library 2704d delivers the acquired object information to the content management unit 2804, and generates, for each object, an instance of a class that implements the CDSObject interface including the extracted information for each object. Combined into an array and returned as a return value. If the response message is an error, the network library 2704d returns null.
  • FIG. 33 is a diagram illustrating an example of a Java API provided by the content management unit 2804. However, only those related to the present invention are illustrated, and the content management unit 2804 may include other APIs.
  • the interface CDSObject shown in (1) of FIG. 33 defines an interface for accessing an object that is a generic concept of containers and items.
  • the network library 2704d represents an object defined by UPnP AV CDS by a class that implements this interface.
  • FIG. 34 is a diagram showing the definition of CDSObject.
  • the method getID returns the ID of the object as a character string.
  • the method getParentID returns the ID of the parent container of the object as a character string. If the object is a root container, or if the object has no parent container, null is returned.
  • the method getClass returns the class of the object defined by UPnP AV CDS as a character string.
  • the object class is “object.container”, “object.item”, or the like.
  • the method getMetadata returns attribute information (content attribute information) given to the object as an instance of a Metadata class described later. With this method, the client application running on the data receiving apparatuses 102 and 103 can acquire the resume position and resume position identifier of the object.
  • the interface container shown in (2) of FIG. 33 is a derived interface of the CDSObject interface and defines an interface for accessing the container.
  • FIG. 35 is a diagram showing the definition of Container.
  • the method getChildCount returns the number of child objects that the container has at that time.
  • a method getChildren returns all child objects of the container.
  • the return value is an array of instances of a class that implements CDSObject. Returns null if processing fails.
  • the method getChild returns the same object whose ID is given by the argument objectID among the child objects of the container. If there is such an object, the instance is returned. If there is no such child object in the container, null is returned.
  • the interface ContentItem shown in (3) of FIG. 33 is a derived interface of the CDSObject interface, and defines an interface for accessing the item.
  • FIG. 36 shows the definition of ContentItem.
  • the method requestSetMediaTime sets a resume position to the resume position and resume position identifier managed by the data transmission apparatus 101.
  • the client application when the client application wants to add a resume position, it sets a new identifier that the client application wants to set in an argument Identifier indicating the resume position identifier.
  • the resume position identifier acquired by the getMetadata method of the Metadata interface described later is set as an argument Identifier, and the resume position to be updated is set as an argument Time.
  • FIG. 39 shows an example of a method for creating the updated restart position information table at this time.
  • FIG. 39 is a diagram illustrating an example of a method for creating the updated restart position information table.
  • Example of Deletion it is assumed that the restart position information table before update is shown in FIG. 29, the argument Time of the method requestSetMediaTime is “ ⁇ 1”, and the argument Identifier is “LivingRoom”.
  • the content management unit 2804 determines whether or not the resuming position information table before updating in FIG. 29 has been read to the end in order to create the resuming position information table after updating (S39001). If it has not been read to the end, a set of the resume position “00:30:00” and the resume position identifier “LivingRoom” is acquired (S39002). Next, the restart position identifier “LivingRoom” and the argument Identifier “LivingRoom” are compared (S39003) to confirm that they match.
  • the processing completion flag is set (S39008), and since the flag is set, it is subsequently determined whether or not to set the device setting identifier ( S39010).
  • the device setting identifier is acquired and added (S39011).
  • a specific example of the device setting identifier is an application identifier or Friendly Name set by the client application with respect to the aforementioned Device interface.
  • the application identifier is an identifier of an application used to determine an application to be activated when the AM 2704b activates the application. Examples thereof include Application_id, Organization_id, or Group_identifier.
  • Whether or not to set the device setting identifier can be determined in advance between the data transmitting device 101, the data receiving device 102, and the data receiving device 103, and the setting of the device setting identifier indicated by the dotted line in S39012 is as follows. It is not always necessary to implement it. Update Example Here, the restart position information table before update is shown in FIG. 29, the argument Time of the method requestSetMediaTime is “00:40:00”, and the argument Identifier is “LivingRoom”. The update is the same as in the case of deletion until the restart position identifier and the argument Identifier are compared (S39003).
  • the argument Time is confirmed (S39005), and if the argument Time is not “ ⁇ 1”, the resume position specified by the resume position identifier is set to the argument Time “00: The set of the resume position “00:40:00” and the resume position identifier “LivingRoom” updated to “40:00” is added to the updated resume position information table (S39007). Since the subsequent processing is the same as the example of deletion, it is omitted. Additional example Here, it is assumed that the restart position information table before update is shown in FIG. 29, the argument Time of the method requestSetMediaTime is “00:40:00”, and the argument Identifier is “Ken'sRoom”.
  • the restart position information table before update is copied to the restart position information table after update by repeating S39003 and S39004. Then, after processing all the restart positions and the restart position information, it is checked whether the processing completion flag is set (S39008). If the flag is not set, the restart position information after updating the argument Time and the argument Identifier Add to table. If it is set, the same processing as described above is performed, and thus the description thereof is omitted.
  • requestSetMediaTime has been described with a method of taking two arguments, an argument Time indicating a restart position and an argument Identifier indicating a restart position identifier, but the argument of requestSetMediaTime may be only Time.
  • the content management unit 2804 obtains a resume position identifier Identifier from the resume position when the content resume request is made, using the resume position information table of FIG. Then, when update of the restart position is specified by requestSetMediaTime, it may be determined as the restart position for the recorded restart position identifier Identifier, and the updated restart position information table may be generated according to the processing of FIG. .
  • NetActionHandler which is the third argument of requestSetMediaTime, is specified in order for the application to set a Handler that receives the result of the update position information update request in the data transmission apparatus 101.
  • the interface Metadata shown in (4) of FIG. 33 is a class for holding attribute information.
  • FIG. 37 is a diagram showing the definition of Metadata.
  • the method getKeys returns all the attribute information names (keys) set in the Metadata instance as an array of character strings. Note that if the Metadata instance has a hierarchical structure, that is, if the value for a certain key includes a Metadata instance, the key included in the Metadata instance set to that value is not included in the return value. . That is, it returns a set of only keys possessed by the Metadata instance.
  • Method getMetadata gives the attribute information name with argument key and returns the value of the attribute information. Therefore, the resume position and the resume position identifier can be acquired by specifying the name of the attribute information of the resume position and the resume position identifier (for example, ocap: PresentationPoint) in the argument Key and calling the method getMetadata. If the Metadata instance does not have attribute information with the name given by the argument, null is returned.
  • the interface NetActionHandler shown in (5) of FIG. 33 is used to notify the result of the asynchronous processing to the application.
  • FIG. 38 is a diagram showing the NetActionHandler interface.
  • the application is notified by calling the Notify method whether the request for changing the restart position specified by requestSetMediaTime has succeeded on the data transmission apparatus 101.
  • the data transmission apparatus 101 is an STB that receives digital broadcasts, but is not limited thereto.
  • a configuration may be employed in which content is received from a network and stored without a tuner.
  • the configuration in this case is the same as that shown in FIG.
  • stores data by means other than a network may be sufficient.
  • the argument of the method requestSetMediaTime of the ContentItem interface is a time indicating a restart position and an identifier indicating a restart position identifier.
  • a character string is taken as an argument, and a CSV list is added to the character string. It may be used to specify a resume position and a resume position identifier.
  • the data transmitting apparatus 101 updates the stored resuming position accordingly, but the data transmitting apparatus 101
  • the server application may be inquired of whether or not the resuming position can be updated, and the resuming position may be updated when permitted by the server application.
  • the data transmission apparatus 101 may deliver a resumption position update request to the server application, and the server application may update the resumption position.
  • a part or all of the components constituting each of the above devices may be configured by one system LSI (Large Scale Integration).
  • the system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip. Specifically, the microprocessor, ROM (Read Only Memory), or RAM (Random Access Memory) And so on.
  • a computer program is stored in the RAM.
  • the system LSI achieves its functions by the microprocessor operating according to the computer program.
  • a part or all of the constituent elements constituting each of the above devices may be constituted by an IC card or a single module that can be attached to and detached from each device.
  • the IC card or the module is a computer system including a microprocessor, a ROM, a RAM, and the like.
  • the IC card or the module may include the super multifunctional LSI described above.
  • the IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
  • the present invention is not limited to the data transmission device and the data reception device, and may be the method described in the above embodiment in which these devices operate. Further, it may be a computer program for causing a computer to execute these methods, or a digital signal composed of the computer program.
  • the present invention also provides a computer-readable recording medium on which the computer program or the digital signal is recorded, such as a flexible disk, a hard disk, a CD-ROM (Compact Disk-Read Memory), an MO (Magneto-Optical Disk), a DVD. (Digital Versatile Disk), DVD-ROM, DVD-RAM, BD (Blu-ray Disc), or semiconductor memory.
  • the present invention may transmit the computer program or the digital signal via an electric communication line, a wireless communication line, a wired communication line, a network typified by the Internet, a data broadcast, or the like. .
  • the present invention may also be a computer system including a microprocessor and a memory.
  • the memory stores the computer program, and the microprocessor operates according to the computer program.
  • the present invention can be realized by another independent computer system by recording and transferring the program or the digital signal on the recording medium or by transferring the program or the digital signal via the network or the like. May be implemented.
  • the multimedia content stored in the data transmitting apparatus 101 is a broadcasted multimedia content.
  • the present invention is not limited to this.
  • a configuration may be adopted in which the multimedia content acquired by the data transmission apparatus 101 via the network is accumulated and distributed to the data reception apparatuses 102 and 103.
  • the present invention may be combined with the above-described embodiment and the above-described modification examples.
  • the data transmission device and the data reception device appropriately resume the interrupted data communication even between different manufacturers and different models in communication of data related to the reproduction of multimedia contents through the network.
  • it is useful as a multimedia content server device, receiving terminal, device control device, data output method, or device control method in a network environment such as a home network.
  • DESCRIPTION OF SYMBOLS 101 Data transmitter 102 Data receiver 103 Data receiver 104 Network 105 Broadcasting station 106 Cable 107 Multimedia distribution system 201 Input part 202 1st memory 203 2nd memory 204 Receiving part 205 Demultiplexing means 206 Descrambler 207 TS decoder 208 Video Output unit 209 Audio output unit 210 TS multiplexer 211 Network unit 212 CPU 2601 Input unit 2602 First memory 2603 Second memory 2604 Demultiplexing unit 2605 TS decoder 2606 Video output unit 2607 Audio output unit 2608 Network unit 2609 CPU

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

 再開位置を正しく設定可能であり、かつ、複数の再開位置を設定できるレジューム機能を実現するデータ送信装置(101)は、Java(登録商標)アプリケーションプログラムを実行し、コンテンツおよびコンテンツ属性情報を蓄積するメモリ(202,203)と、コンテンツをデータ受信装置(102,103)へ送信するネットワーク部(211)と、再開位置を示す更新要求をデータ受信装置(102,103)から受信するアクション要求受信応答部(1702)と、その再開位置と再開位置識別子とがコンテンツ属性情報に含まれるように、受信された更新要求に従って、メモリ(202,203)に蓄積されているコンテンツ属性情報を更新する再開位置管理部(1705)とを備える。

Description

データ送信装置、データ受信装置、データ送信方法およびデータ受信方法
 本発明は、マルチメディアのデジタルコンテンツのネットワークなどへの出力およびその制御を行うデータ送信装置等と、デジタルコンテンツの受信およびその制御を行うデータ受信装置等とに関する。
 近年、家庭内のデジタル放送受信機で受信したデジタル放送のコンテンツ、もしくは、レコーダに蓄積したデジタルコンテンツを、ホームネットワークを用いて、他の部屋で視聴するといったことが行われるようになった。
 こういった、ホームネットワークを用いたデジタルコンテンツの共有では、テレビやデジタルビデオレコーダ(DVR)などのCE(Consumer Electronics)機器間だけでなく、パーソナルコンピュータ(PC)やPDA(Personal Digital Assistants)と呼ばれる携帯情報端末などを含めた、ホームネットワークに接続される全ての機器間でその共有を可能とする動きが活発である。具体的には、DLNA(Digital Living Network Alliance)などの標準化団体がこのための標準規格および実装ガイドラインを策定して公開している。
 この際、ホームネットワーク上のサーバ(例えば、デジタル放送を受信するセットトップボックスやDVR)とクライアント(例えば、パーソナルコンピュータやデジタルプレーヤ)における、お互いの機器の認識や利用できるコンテンツの情報のやり取りには、UPnP AV(UPnP AV Architecture)に規定されたものが使用される。UPnP AVによると、サーバは、クライアントからの問い合わせを受けて、提供コンテンツの一覧と、各コンテンツ属性情報を返答する。また、コンテンツデータを通信する必須プロトコルとして、DLNAではHTTP(Hypertext Transfer Protocol)を用いることとしている。
 このようなホームネットワーク環境では、ユーザがリビングで視聴していたコンテンツを停止させ、同じコンテンツの続きを寝室で視聴するようなレジューム機能を実現することもできる。
 このようなレジューム機能の実現方法として、特開2007-158854号公報では、複数の再開位置をユーザ情報と関連づけてサーバで保持する方法が開示されている。しかしながら、UPnP AVなどの一般的なホームネット規格では、サーバは任意の再開位置を独自情報として設定できるが、クライアントから任意の再開位置をサーバへ設定する方法は規定されていない。そのため、この独自情報を解釈できない異なるメーカの機器や異なる機種の間では、再開位置を共有することができない。
 更に、このような課題を解決する一例として、特開2005-323068号公報では、再開位置が設定された際には、中途開始用コンテンツ情報を作成し、中断されたコンテンツも一つのコンテンツとして表現する方法が開示されている。この方法によると、異なるメーカの機器であっても、複数機器間でレジュームを実現することができる。しかし、特開2005-323068号公報の方法では、コンテンツに対し視聴中断を繰り返す度に中途開始用コンテンツが増加する。また、ホームネットワーク環境では、家族の各々が視聴と中断を行うことになるため、中途開始用コンテンツの数は更に増加する可能性がある。これは、ユーザが自分の中断した再開位置を選択する際に、どの中途開始用コンテンツを選択すればいいのかわかりにくく、利便性の低いものになる可能性がある。
 また近年、デジタル放送を受信するSTBなどでは、放送波に含まれるアプリケーションプログラムを受信して、それを実行することが可能となっている。例えば、北米のケーブルテレビの標準規格であるOCAP(OpenCable Application Platform)規格では、放送波に乗せてJavaアプリケーションプログラムが送信され、受信したテレビやSTBにてJavaアプリケーションプログラムが実行される。ここで、サーバもしくはクライアント、もしくはその両方の機能を実現するJavaアプリケーションプログラムをダウンロードして実行する、OCAPホームネットワーク拡張の規格化が北米のCable Television Laboratories, Inc. (CableLabs)において行われている。
 また、このようなJavaアプリケーションプログラムをダウンロードし実行する環境において、複数の再開位置を管理し、レジュームを実現する方法が、国際公開第2007/072680号パンフレットに開示されている。国際公開第2007/072680号パンフレットに開示された方法は、サーバがクライアントより再生中断要求を受信した際に、サーバが再開位置を算出し記憶することを特徴としている。
特開2007-158854号公報 特開2005-323068号公報 国際公開第2007/072680号パンフレット
ContentDirectory:1 Service Template Version 1.01 For UPnP(TM) Version 1.0, June 25, 2002
 しかしながら、国際公開第2007/072680号パンフレットに開示された方法、つまりサーバが再開位置を設定する方法では、ユーザが視聴を中断した位置と、サーバに設定された再開位置とが異なる可能性がある。この主な原因は、ユーザが視聴を中断した位置とは、クライアントで最後に再生した位置であるが、サーバでは、一般的に、クライアントが最後に再生した位置を知ることが出来ず、クライアントに最後に送信したデータの位置を再開位置として判断するためである。すなわち、クライアントにおいては、一般的に、受信したデータを一時保存するバッファリングが行われるが、このバッファリングが考慮されていないためである。
 そこで、本発明では、異なるメーカの機器間においても共通の属性情報を解釈できる、アプリケーションプログラムをダウンロードして実行できるホームネットワーク環境において、再生の再開位置を正しく設定可能であり、かつ、複数の再開位置を設定できるレジューム機能を実現することを目的とする。
 前記従来の課題を解決するために、本発明の一形態におけるデータ送信装置は、Java(登録商標)アプリケーションプログラムを実行するとともに、映像および音声のうち少なくとも一方を含むマルチメディアコンテンツを蓄積し、ネットワークを経由して前記マルチメディアコンテンツを受信装置へ送信するデータ送信装置であって、前記マルチメディアコンテンツおよび当該マルチメディアコンテンツの属性情報を蓄積する蓄積部と、前記マルチメディアコンテンツの少なくとも一部を前記受信装置へ送信する送信部と、前記送信部によって前記受信装置へ送信される前記マルチメディアコンテンツにおいて再生が再開される再開位置を示して前記属性情報の更新を要求する更新要求を前記受信装置から受信する受信部と、前記更新要求によって示される再開位置と、前記再開位置を識別するための再開位置識別子とが前記属性情報に含まれるように、前記受信部によって受信された更新要求に従って、前記蓄積部に蓄積されている前記属性情報を更新する管理部とを備える。
 これにより、Javaアプリケーションプログラムを実行する環境(例えば、OCAP規格の環境)において、再開位置が再開位置識別子に関連付けて属性情報に含められて管理されるため、異なるメーカの機器間においても属性情報の再開位置を解釈することができ、複数の再開位置を設定可能なレジューム機能を実現することができる。さらに、再開位置を示す更新要求が受信装置から受信されるため、例えば、受信装置に送信されたマルチメディアコンテンツの少なくとも一部がその受信装置によって再生されて停止された場合などには、そのマルチメディアコンテンツにおいて再生が再開される再開位置を正しく設定することができ、マルチメディアコンテンツの視聴を適切に再開することができる。
 また、前記受信部は、前記再開位置および前記再開位置識別子を示す前記更新要求を前記受信装置から受信し、前記管理部は、前記更新要求に示される前記再開位置および前記再開位置識別子が前記属性情報に含まれるように、前記蓄積部に蓄積されている属性情報を更新してもよい。
 これにより、受信装置が再開位置識別子を設定することができ、その再開位置識別子を受信装置にとって意味のある識別子にすることができる。その結果、受信装置は再開位置識別子を容易に解釈することができ、再開位置識別子に応じた再開位置の選択を利用することができる。
 また、前記受信部は、前記受信装置で動作するJavaアプリケーションプログラムに関するアプリケーション情報を示す前記更新要求を受信し、前記管理部は、さらに、前記更新要求に示される前記アプリケーション情報を用いて、前記更新要求に従った前記属性情報の更新を行うか否かを判断し、更新を行うと判断した際に、前記蓄積部に蓄積されている属性情報を更新してもよい。
 これにより、更新要求に示されるアプリケーション情報を用いて更新の可否が判断されるため、不適切なアプリケーション情報を示す更新要求を受信した際には、その更新要求に従った属性情報の更新が防止されるため、セキュリティを向上することができる。例えば、受信装置上で複数のJavaアプリケーションプログラムが動作する環境では、属性情報の更新が認められる更新要求を、そのアプリケーション情報を利用することで選択することができる。
 また、前記管理部は、さらに、前記再開位置識別子を設定し、前記更新要求に示される前記再開位置と、設定された前記再開位置識別子とが前記属性情報に含まれるように、前記蓄積部に蓄積されている属性情報を更新してもよい。
 これにより、受信装置によって再開位置識別子が設定されない場合でも、データ送信装置側で適切な再開位置識別子を設定して再開位置を管理することができる。
 また、前記管理部は、前記受信装置から取得した前記受信装置の情報を用いて前記再開位置識別子を設定してもよい。
 これにより、再開位置識別子が受信装置から取得した受信装置の情報(例えば、装置設定識別子)を用いて設定されるため、マルチメディアコンテンツの視聴を中断した受信装置を再開位置識別子から識別することができる。
 また、前記従来の課題を解決するために、本発明の一形態におけるデータ受信装置は、映像および音声のうち少なくとも一方を含むマルチメディアコンテンツをネットワークを経由して送信装置から受信するデータ受信装置であって、Java(登録商標)アプリケーションプログラムを実行するJava実行部と、前記マルチメディアコンテンツの少なくとも一部と、当該マルチメディアコンテンツの属性情報とを前記ネットワークを経由して前記送信装置から受信する受信部と、前記受信部によって受信される前記マルチメディアコンテンツにおいて再生が再開される再開位置を示して前記属性情報の更新を前記送信装置へ要求する更新要求を、前記Java実行部で実行されるJavaアプリケーションプログラムからの指示に従って生成する管理部と、前記管理部によって生成された前記更新要求を前記送信装置へ送信する送信部とを備える。
 これにより、例えば、データ受信装置の受信部によって受信されたマルチメディアコンテンツの少なくとも一部が再生されて停止された場合などに、そのマルチメディアコンテンツにおいて再生が再開される再開位置を示す更新要求が生成されて送信装置へ送信されるため、ユーザが視聴を中断した位置を正確に再開位置として送信装置の属性情報へ登録することができる。
 また、前記管理部は、前記Java実行部で実行されるJavaアプリケーションプログラムから、前記再開位置と、当該再開位置を識別するための再開位置識別子とを受け取り、受け取った前記再開位置および前記再開位置識別子を示す前記更新要求を生成してもよい。
 これにより、Javaアプリケーションプログラムから受け取られた再開位置と再開位置識別子を示す更新要求が生成されるため、再開位置識別子をJavaアプリケーションプログラムまたはユーザにとって意味のある識別子にすることができる。
 また、前記管理部は、前記データ受信装置内に記録されている情報に基づいて、前記再開位置を識別するための再開位置識別子を設定し、設定した前記再開位置識別子および前記再開位置を示す前記更新要求を生成してもよい。
 これにより、再開位置識別子がデータ受信装置内に記録されている情報に基づいて設定されるため、データ受信装置内に記録されている情報を示す再開位置識別子を用いた再開位置の管理を送信装置にさせることができる。
 また、前記データ受信装置内に記録されている情報は、前記Javaアプリケーションプログラムに関するアプリケーション情報であって、前記管理部は、前記アプリケーション情報を前記再開位置識別子として設定してもよい。
 これにより、アプリケーション情報を示す再開位置識別子を用いた再開位置の管理を送信装置にさせることができる。その結果、送信装置では、更新要求に示されるアプリケーション情報に応じて、送信装置に蓄積されている再開位置識別子および再開位置を選択して利用することができるとともに、更新要求に示されるアプリケーション情報に応じて、送信装置に蓄積されている再開位置識別子および再開位置の更新の可否を判断することができる。
 また、前記データ受信装置内に記録されている情報は、前記Javaアプリケーションプログラムによって設定された前記データ受信装置に関する情報であって、前記管理部は、前記データ受信装置に関する情報を前記再開位置識別子として設定してもよい。
 これにより、再開位置識別子がJavaアプリケーションプログラムによって設定されたデータ受信装置に関する情報であるため、そのJavaアプリケーションプログラムをダウンロードして実行し得る機器であれば、その機器のメーカなどに依存することなく、統一的に各機器においてその再開位置識別子を利用することができる。
 なお、本発明は、このようなデータ送信装置およびデータ受信装置として実現することができるだけでなく、データ送信装置とデータ受信装置を含むマルチメディア配信システム、各装置における処理動作の方法、コンピュータにその処理動作をさせるためのプログラム、そのプログラムを格納する記録媒体、または、集積回路としても実現することができる。また、本発明では、上述の課題を解決するための各手段を任意に組み合わせてもよい。
 以上述べたように、本発明のデータ送信装置およびデータ受信装置によれば、データ受信装置においてマルチメディアコンテンツの視聴または再生を中断して再開する場合であっても、ネットワーク上の他のデータ受信装置で再開する場合においても、的確に再生を再開することが可能となる。
図1は、本発明の実施の形態におけるマルチメディア配信システムの構成図である。 図2は、本発明の実施の形態おけるデータ送信装置101の構成図である。 図3は、本発明の実施の形態おける入力部201をフロントパネルで構成した場合の外観の一例を示す図である。 図4は、本発明の実施の形態におけるデータ送信装置101が保存するプログラムの構成図である。 図5Aは、本発明の実施の形態における画面表示の一例を示す図である。 図5Bは、本発明の実施の形態における画面表示の一例を示す図である。 図6は、本発明の実施の形態における第2メモリ203が保存する番組情報の一例を示す図である。 図7は、本発明の実施の形態における第2メモリ203が保存するチャンネル情報の一例を示す図である。 図8Aは、本発明の実施の形態における第2メモリ203が保存するチャンネルの識別子の一例を示す図である。 図8Bは、本発明の実施の形態における第2メモリ203が保存するチャンネルの識別子の一例を示す図である。 図8Cは、本発明の実施の形態における第2メモリ203が保存するチャンネルの識別子の一例を示す図である。 図9は、本発明の実施の形態における第2メモリ203が保存するPATの一例を示す図である。 図10は、本発明の実施の形態における第2メモリ203が保存するPMTの一例を示す図である。 図11は、本発明の実施の形態における第2メモリ203が保存するAITの一例を示す図である。 図12は、本発明の実施の形態における第2メモリ203が保存するファイルシステムの一例を示す図である。 図13は、本発明の実施の形態における第2メモリ203に蓄積されたデータの構成の一例を示す図である。 図14は、本発明の実施の形態におけるコンテンツ属性情報の一例を示す図である。 図15は、本発明の実施の形態における属性情報テーブルの一例を示す図である。 図16は、本発明の実施の形態におけるURIテーブルの一例を示す図である。 図17は、本発明の実施の形態におけるネットワークライブラリ405eの内部構成図である。 図18は、本発明の実施の形態における再開位置情報テーブルの一例を示す図である。 図19は、本発明の実施の形態における再開位置情報テーブルの一例を示す図である。 図20は、本発明の実施の形態における再開位置情報テーブルの一例を示す図である。 図21は、本発明の実施の形態におけるコンテントディレクトリの一例を示す図である。 図22は、本発明の実施の形態におけるコンテンツ属性情報の一例を示す図である。 図23は、本発明の実施の形態におけるデータ受信装置とデータ送信装置のシーケンスの一例を示す図である。 図24は、本発明の実施の形態におけるコンテンツ属性情報の一例を示す図である。 図25は、本発明の実施の形態におけるコンテンツ属性情報の一例を示す図である。 図26は、本発明の実施の形態おけるデータ受信装置102およびデータ受信装置103の構成図である。 図27は、本発明の実施の形態におけるデータ受信装置102およびデータ受信装置103が保存するプログラムの構成図である。 図28は、本発明の実施の形態におけるネットワークライブラリ2704dの内部構成図である。 図29は、本発明の実施の形態における再開位置情報テーブルの一例を示す図である。 図30は、本発明の実施の形態におけるネットワークライブラリ2704dが備えるJava APIの一例を示す図である。 図31は、本発明の実施の形態におけるネットワークライブラリ2704dが備えるJava APIの一例を示す図である。 図32は、本発明の実施の形態におけるネットワークライブラリ2704dが備えるJava APIの一例を示す図である。 図33は、本発明の実施の形態におけるネットワークライブラリ2704dが備えるJava APIの一例を示す図である。 図34は、本発明の実施の形態におけるネットワークライブラリ2704dが備えるJava APIの一例を示す図である。 図35は、本発明の実施の形態におけるネットワークライブラリ2704dが備えるJava APIの一例を示す図である。 図36は、本発明の実施の形態におけるネットワークライブラリ2704dが備えるJava APIの一例を示す図である。 図37は、本発明の実施の形態におけるネットワークライブラリ2704dが備えるJava APIの一例を示す図である。 図38は、本発明の実施の形態におけるネットワークライブラリ2704dが備えるJava APIの一例を示す図である。 図39は、本発明の実施の形態におけるコンテンツ管理部2804が作成する更新後の再開位置情報テーブルの作成の一例を示す図である。
 以下本発明の実施の形態について、図面を参照しながら説明する。
 図1は、本発明の実施の形態におけるマルチメディア配信システムの構成図である。図1において、101はデータ送信装置を、102および103はそれぞれデータ受信装置を、104はネットワークを、105はケーブルテレビの放送局を、106はデータ送信装置101と放送局105を結ぶケーブルを表し、107はこれらによって構成されるマルチメディア配信システムを表す。データ送信装置101、データ受信装置102およびデータ受信装置103は、ネットワーク104に接続されており、ネットワーク104を介して相互に通信可能である。
 本実施の形態におけるデータ送信装置101は、ネットワークインタフェースと、マルチメディアコンテンツ(以下、マルチメディアデータまたはコンテンツと称す)を蓄積する蓄積手段を備えた、デジタル放送を受信するCATV STB(Set Top Box)である。データ送信装置101は、ケーブル106を介して放送局105に接続されている。そして、データ送信装置101は、放送局105から配信されるJavaアプリケーションプログラム(以下、Javaアプリケーションまたはアプリケーションと称す)を実行し、さまざまな機能を実現したり、データ受信装置102または103が備える機能を制御したりすることが可能である。本実施の形態では、データ送信装置101は、ホームネットワークに接続されたデータ受信装置102または103に対して蓄積したマルチメディアデータの共有を提供するサーバ機能と、それに関連する機能を、Javaアプリケーションにて制御するものとする。以下、この働きを行うJavaアプリケーションのことをサーバアプリケーションと呼ぶこととする。なお、Javaアプリケーションの受信と起動については後述する。
 また、データ送信装置101は、受信したデジタル放送コンテンツなどのマルチメディアデータを、蓄積手段に蓄積する。また、ネットワークインタフェースを通して、ネットワーク104に接続されている。そして、ネットワーク104を通じて送信された、データ受信装置102およびデータ受信装置103からの要求を受信する。そして、要求に応じて、受信したデジタル放送のコンテンツごとの属性情報、蓄積しているコンテンツごとの属性情報、もしくはマルチメディアデータを、ネットワーク104を通じてデータ受信装置102およびデータ受信装置103へ送信するものである。このため、データ送信装置101は、蓄積したコンテンツをネットワーク経由でデータ受信装置102及びデータ受信装置103と共有できるように管理している。
 データ受信装置102およびデータ受信装置103は、ユーザの操作を受けて、データ送信装置101へ提供可能なコンテンツの一覧送信要求、および、マルチメディアデータおよびコンテンツの属性情報(以下、コンテンツ属性情報と称す)の送信要求を送信する。またその返答として、データ送信装置101よりデータを受信して、ユーザに提示するものである。このとき、データ受信装置102およびデータ受信装置103は、データ送信装置101より受信したコンテンツ属性情報から、そのコンテンツが「再生中断中」であるかの判定を行うことができ、ユーザの要求に応じて、マルチメディアデータ送信再開の要求を発行することもできる。データ受信装置102およびデータ受信装置103は、Java実行手段を備えており、放送局105やデータ送信装置101、インターネットなどから受信したJavaアプリケーションを実行することが可能である。本実施の形態においては、データ送信装置101が提供するマルチメディアデータの共有を受けるクライアント機能を、放送局105から受信したJavaアプリケーションによって制御するものとする。以下、この働きを行うJavaアプリケーションのことをクライアントアプリケーションと呼ぶこととする。
 また、データ送信装置101とデータ受信装置102およびデータ受信装置103との間のネットワーク104を介した通信は、DLNAで定義されたプロトコルに従って行われる。具体的には、DLNA Networked Device Interoperability Guidelines expanded Volume 1: Architectures and Protocols に定義されたとおり、UPnP DA(Device Architecture)にしたがって、サーバやサーバが提供するサービスの検索、UPnP AV CDSにしたがって、コンテンツの検索とコンテンツの属性の通信を行い、HTTP(Hypertext Transfer Protocol)を用いて、コンテンツのデジタルデータの通信を行う。なお、サーバやサービスの検索、および、マルチメディアデータの通信は、本発明の範囲外であり、これらの方法に限定されない。
 ネットワーク104は、家庭内に施設されたホームネットワークであり、イーサネット、無線LAN、MoCA(Multimedia over Coax Alliance)などによって構成されたIPネットワークである。
 以下、データ送信装置101とデータ受信装置102およびデータ受信装置103の間の通信およびそれぞれの動作について説明する。なお、説明を簡単にするために、データ送信装置101については、データ受信装置102及びデータ受信装置103にコンテンツの共有を提供するサーバ機能に関する説明を行い、データ受信装置102及びデータ受信装置103については、データ送信装置101からコンテンツ属性情報やマルチメディアデータを受信するクライアント機能に関する説明を行うが、それぞれ、クライアント機能、サーバ機能を併せ持つ構成であっても同様である。
 まず、データ送信装置101、データ受信装置102及びデータ受信装置103は、ネットワーク104に接続されたときに、UPnP DAで定義されている方法により、サーバ機器のアドバタイズ、サーバやサービスの検索を行うことにより、データ受信装置102及びデータ受信装置103からデータ送信装置101へアクセスすることが可能となる。
 まず、データ送信装置101は、ネットワーク104に接続されると、ネットワーク104上でマルチキャストすることにより、サーバ機器である自身がネットワーク104に参加したことをアドバタイズする。データ受信装置102が既にネットワーク104に参加しており、この通知を受信した場合、データ受信装置102は、通知されたサーバ機器が既知のものであるかどうか調べる。未知のサーバ機器である場合には、データ受信装置102は、データ送信装置101へサーバ機器の詳細情報やサーバ機器が提供するデバイスやサービスの詳細情報の送信を依頼する。データ受信装置102は、該依頼のレスポンスとしてデータ送信装置101の情報を取得すると、その情報を保存する。クライアントアプリケーションは、データ受信装置102から、これらサーバ機器の情報を取得することができる。なお、データ受信装置103でも、データ受信装置102と同様の処理が行われる。
 一方、データ受信装置102及びデータ受信装置103は、ネットワーク104に接続されると、ネットワーク104に接続されているサーバ機器の問い合せをマルチキャストすることにより、サーバ機器の検索を行う。データ送信装置101が既にネットワーク104に参加しており、この問い合せを受信すると、データ送信装置101はレスポンスとして自身がサーバ機器であることをデータ受信装置102及びデータ受信装置103へ通知する。データ受信装置102及びデータ受信装置103は、データ送信装置101から通知を受信すると、データ送信装置101へサーバ機器の詳細情報やサーバ機器が提供するデバイスやサービスの詳細情報の送信を依頼する。データ受信装置102及びデータ受信装置103は、該依頼のレスポンスとしてデータ送信装置101の情報を取得すると、その情報を保存する。
 以上のような方法で、データ受信装置102及びデータ受信装置103は、データ送信装置101がネットワーク104に接続されたサーバ機器であることと、データ送信装置101が提供するサービスについて、認識することができる。これらの処理の詳細については、UPnP DAの仕様書を参照されたい。
 次に、データ送信装置101とデータ受信装置102及びデータ受信装置103との間で行われる、コンテンツの一覧およびコンテンツ属性情報の通信に関する処理について説明する。これは、DLNAおよびUPnP AV CDSに定義された方法に従って行われる。本実施の形態に記述していない部分の詳細は、DLNA GuidelinesおよびUPnP AV CDSの仕様書を参照されたい。
 まず、データ送信装置101は、コンテントディレクトリと呼ばれる、UPnP AV CDSでサーバからクライアントに提供するデータ構造を管理する。コンテントディレクトリでは、コンテンツをコンピュータのフォルダやファイルのような木構造が構成される。フォルダにあたるものをコンテナ(container)とよび、ファイルにあたるものをアイテム(item)と呼ぶ。一般的にコンテンツはitemである。また、コンテナとアイテムの上位概念のものをオブジェクト(object)と呼ぶ。すなわち、コンテナとアイテムは、オブジェクトの派生クラスである。
 図21は、コンテントディレクトリの一例を示す図である。図21において、2102、2103、2104、および2105はコンテナを、2106、2107、および2108はアイテムを表す。コンテナ2102のように、最上位のコンテナを、特にルートコンテナ(root container)と呼ぶ。このようなコンテントディレクトリは、サーバアプリケーションが構築する構成であっても良いし、データ送信装置101が、蓄積手段への記録形態に合わせて構築する構成であっても良い。本実施の形態においては、サーバアプリケーションがコンテントディレクトリを構築することとする。
 図22は、データ送信装置101からデータ受信装置102などのクライアントへ送信されるコンテンツ属性情報の一例を示す図である。ただし、図22ではひとつのコンテンツ(アイテム)に関係するところのみを抜き出している。図22に示すように、UPnP AV CDSでは、各コンテンツ属性情報はXML文書で送信される。
 データ送信装置101は、オブジェクトごとに、その属性情報を管理している。属性情報は、アイテムの場合、該当するコンテンツのタイトル、放送された日時、または、放送されたチャンネルなどを示すコンテンツ属性情報である。UPnP AV CDSでは、オブジェクトの種類ごとに付与すべき属性情報を定義している。また、UPnP AV CDSでは、サーバのアプリケーションやベンダーが独自の属性情報を定義し、それを追加する仕組みを定義している。したがって、データ送信装置101では、データ送信装置101上で実行されるサーバアプリケーションが、UPnP AV CDSやDLNAが定義した属性情報と、該サーバアプリケーションの独自属性情報を付与することが可能である。
 本実施の形態では、サーバアプリケーションとクライアントアプリケーションが共に認識できる再開位置を表す属性であるocap:PresentationPointを、独自属性情報として設定する。なお、ocap:PresentationPointにおいて、“ocap”はXML namespaceを表すプレフィクスであり、PresentationPointはXMLの要素を表す。本実施の形態では、“ocap”は名前空間URIが“urn:schemas-opencable-com”である名前空間を表すこととする。XML namespaceに関しては、World Wide Web Consortiumが発行しているXML namespaceの仕様書を参照されたい。
 以下、ここでは、データ送信装置101とデータ受信装置102との間の通信で、マルチメディアデータの送信から中断までを説明し、続いて、データ送信装置101とデータ受信装置103との間の通信で、データ受信装置102へ送信途中に中断したマルチメディアデータの送信を再開する、ことを例にとって説明する。
 図23は、データ送信装置101とデータ受信装置102及びデータ受信装置103との間のマルチメディアデータの取得及びコンテンツ属性情報の更新に関するシーケンスの一例を示す図である。図23において同じ番号を示すものは同様の処理を行う。なお、データ送信装置101、データ受信装置102及びデータ受信装置103は、ネットワーク104に接続されたならば、それぞれ、上述したUPnP DAで定義される通信を行う。これにより、データ受信装置102及びデータ受信装置103は、データ送信装置101がネットワーク104に接続されているサーバ機器(マルチメディアサーバ)であることを認識できているものとする。なお、さらに、データ受信装置102およびデータ受信装置103が、上記したデータ送信装置101と同様の方法で、自身がネットワークに参加していることをアドバタイズし、データ送信装置101は、上記したデータ受信装置102およびデータ受信装置103と同様の方法で、データ受信装置102およびデータ受信装置103からデバイスの詳細情報を受けとるといった処理を併せ持っていても良い。
 図23を参照し、データ送信装置101とデータ受信装置102の間でのデータ通信において、データ受信装置102へのデータ送信を中断するまでの過程における通信とそれぞれの動作を説明する。なお、データ送信装置101とデータ受信装置103との間でも、同様の処理が行える。
 データ送信装置101は、新しくコンテンツが登録された際には、録画コンテンツの再開位置を示す再開位置情報であるocap:PresentationPointに「-1」を設定し初期化しておく(2301)。データ受信装置102は、UPnP AVのCDS:Browseアクションを用いて、データ送信装置101へコンテンツ属性情報の一覧の取得要求を行う(2302)。データ送信装置101は、データ受信装置102に指定されたコンテンツ属性情報の一覧をデータ受信装置102へ送信する(2303)。ここで、ocap:PresentationPointが初期値「-1」の場合、データ送信装置101は、コンテンツ属性情報の要素であるocap:PresentationPointの内容を「-1」としてそのコンテンツ属性情報を送ることとする。データ受信装置102では、取得したコンテンツ属性情報から、再開位置を示すocap:PresentationPointと、コンテンツファイル送信を要求するために必要なURL(Uniform Resource Locator)を取得する(2304)。ocap:PresentationPointが初期値を示す場合、すなわち、ocap:PresentationPointの内容が「-1」の場合は、該コンテンツに「再生中断中」の情報が設定されていないことを判断することができるため、データ受信装置102は、コンテンツの最初からの再生要求を行う。また、ここでocap:PresentationPointに値が設定されている場合は、後述する再開位置識別子を用いて再生位置を決定する(2305)。このとき、データ受信装置102は、クライアントアプリケーションに、ocap:PresentationPointに指定された再開位置と再開位置識別子の全てあるいは一部を通知し、クライアントアプリケーションが再生位置をデータ受信装置102に設定することができる。クライアントアプリケーションに通知する方法については後述する。もちろん、データ受信装置102が、クライアントアプリケーションへ通知することなく、ocap:PresentationPointに指定された再開位置と再開位置識別子を元に、再生位置を決定してもよい。
 次にデータ受信装置102は、取得したURLと再生位置を指定し、HTTP GETリクエストによってマルチメディアデータの転送を要求する(2306)。データ転送要求の一例を以下に示す。なお、ここではコンテンツの最初から再生するため、送信開始位置や送信終了位置といった転送範囲を指定していないが、最初から再生する場合であってもTimeSeekRange.dlna.orgヘッダなどを用いて、転送範囲を指定してもよい。
 
<コンテンツの最初からのデータ転送要求>
GET http://192.168.0.3/AVData/0001.m2ts HTTP/1.1
Host: 192.168.0.3
Date: Fri Mar 06 20:00:00 2009 GMT
User-Agent: AVT Client
Connection: Keep-Alive
 
 データ送信装置101がこのようなデータ転送要求を受け、指定されたデータ転送を行うことで、データ受信装置102は視聴を開始することができる(2307)。
 
<コンテンツのデータ転送要求への応答>
HTTP/1.1 200 OK
Date: Fri Mar 06 20:00:00 2009 GMT
Server: AVT Server
Conenction: Keep-Alive
Content-Type: video/mpeg
Content-Length : 3460361276byte
 (空行)
[3460361276byteのデータ]
 
 次に、データ受信装置102で再生が中断される(2308)と、データ受信装置102はデータ受信を終了し、データ送信装置101とのコネクションを切断する。このとき、データ受信装置102は、必要に応じてCDS:UpdateObjectを用いて、データ送信装置101へ再開位置の更新を要求する(2309)。この場合、CDS:UpdateObjectは、再開位置を変更するコンテンツ識別子(ObjectID)と更新前のocap:PresentationPointと更新後のocap:PresentationPointを引数にとる。一例として、コンテンツの先頭から30分経過した位置で、データ受信装置102の再生を停止したとして、更新後のocap:PresentationPointに再開位置として00:30:00を指定する場合のCDS:UpdateObjectの内容を以下に示す。なお、コンテンツ識別子及び更新前のocap:PresentationPointは、CDS:Browseにて取得したコンテンツ属性情報を使用する。ここではコンテンツ識別子が「ContentID00」、更新前のocap:PresentationPointは「-1」であり、ocap:PresentationPointを「00:30:00」に更新する場合の一例を以下に示す。
 
<[1]再開位置の更新要求例>
  CDS:UpdateObject(ContentID00, 
         “<ocap:PresentationPoint>-1</ocap:PresentationPoint>”,
                “<ocap:PresentationPoint> 00:30:00 </ocap:PresentationPoint>”);
 
 なお、本実施の形態では、再開位置情報が初期値の場合、ocap:PresentationPointの内容を「-1」とすることとしたが、空要素もしくはNULL文字など未設定であることが分かるものであれば、その形式は問わない。
 また、データ受信装置102は、再開位置と再開位置を識別する再開位置識別子とを合わせて示す再開位置情報を設定することができる。再開位置識別子の例としては、データ受信装置固有の情報(Friendly Name、UUID、Port Number、IP addressなど)や、データ受信装置上で動作するクライアントアプリケーション固有の情報(OCAP仕様もしくはDVB-MHP仕様によって定められた、後述のAITに記載されたJavaプログラム識別子であるorganization_idとapplication_idや、Addressable XAITとしてアプリケーションを幾つかのaddressing groupにグループ分けした、各グループの識別子group_identifier)や、クライアントアプリケーションがデータ受信装置へ設定する再開位置識別子(例えば、設置場所情報やユーザ情報やアプリケーションが判断可能なIDなど、クライアントアプリケーションがユーザインタフェースなどを通して、ユーザなどから取得できる情報)や、日時といったものある。データ受信装置102は、データ受信装置102が保持する情報やデータ受信装置102上で動作するクライアントアプリケーションが設定した情報を再生開始の再開位置識別子として設定することができる。なお、クライアントアプリケーションから再開位置識別子を設定する方法については後述する。
 また、再開位置識別子の設定は、データ受信装置102及びデータ受信装置103からocap:PresentationPointの更新要求を受けた時に、データ送信装置101が付与する構成であってもよい。一例としては、データ送信装置101がocap:PresentationPointの更新要求を受けた日時を再開位置識別子として利用する方法や、更新要求を送信したデータ受信装置を識別し、該データ受信装置から取得したデバイス情報を利用して、そのデータ受信装置の情報(FriendlyName, UUID, IP address, MAC addressなどといったデータ受信装置固有の情報や、organization_id, application_idなどといったデータ受信装置上で動作するクライアントアプリケーション固有の情報など)を再開位置識別子として設定することもできる。
 以下にデータ受信装置102が再開位置と再開位置識別子を関連づけて、コンテンツ属性情報に含まれる再開位置情報の更新を要求する例を示す。
 データ受信装置102は、再開位置と、データ受信装置102が設定する再開位置識別子(以下装置設定識別子と呼ぶ)とを関連づけて設定することができる。装置設定識別子は、データ受信装置102自身が保持する情報である。一例としては、FriendlyName、UUID、MAC Address, IP addressなどがある。ここでは装置設定識別子として、データ受信装置102のFriendly Nameを利用した例を示す。なお、Friendly NameはUPnP DAで定義されたもので、ユーザがデバイスを識別するために容易な名前を設定するためのものである。UPnP DAでは、Friendly Nameとしてどのような名前を設定すべきかは定義していない。そのため、Friendly Nameは各メーカや機種により異なる方針により設定されている。本実施の形態では、後述する方法により、Javaアプリケーションがデータ受信装置102、データ受信装置103及びデータ送信装置101へFriendly Nameを設定することで、ホームネットワーク内の各機器のFriendly Nameの設定方針が統一化することができる。一例として、Friendly Name(friendly_name)として設置場所を指定した場合の更新要求(CDS:UpdateObject)を以下に示す。
 
< [2]再開位置と装置設定識別子の更新要求例1:
装置設定識別子=Friendly Name (例:“Living_Room”) >
  CDS:UpdateObject(ContentID00,
        “<ocap:PresentationPoint>-1</ocap:PresentationPoint>”,
        “<ocap:PresentationPoint friendly_name=“LivingRoom”> 00:30:00
         </ocap:PresentationPoint>”);
 
 次に、データ受信装置102が再開位置と再開位置識別子を設定する場合の他の例を示す。データ受信装置102は、データ受信装置102上で動作するクライアントアプリケーションの情報(以下、アプリケーション情報と称す)を取得することができる。アプリケーション情報としては、例えば、OCAP規格で定義されたorganization_id(org_id)もしくはapplication_id(app_id)、または、いくつかのアプリケーションをグループ化したgroup_identifierがある。装置設定識別子として、このアプリケーション情報のいずれか、あるいは、これらの組み合わせを用いることができる。これによりデータ受信装置102は、アプリケーション情報と同じ値の再開位置識別子を持つ再開位置を利用することができる。またデータ送信装置101は、アプリケーション情報と同じ値の再開位置識別子をもつ再開位置の更新要求のみ、UPnP AV CDSのコンテンツ属性情報の更新を行うことができる。このようにアプリケーション情報を利用することにより、再開位置の利用や更新を要求するデバイスやアプリケーションを制限することが可能となり、セキュリティが向上するといった効果がある。
 
< [3]再開位置と装置設定識別子の更新要求例2:
装置設定識別子=アプリケーション情報 >
  CDS:UpdateObject(ContentID00, 
                 “<ocap:PresentationPoint>-1</ocap:PresentationPoint>”,
                   “<ocap:PresentationPoint app_id=“1”, org_id=“3”> 00:30:00 
                  </ocap:PresentationPoint>”);
 
 さらに、データ受信装置102が再開位置と再開位置識別子を設定する場合の他の例を示す。ここでは、データ受信装置102上で動作するクライアントアプリケーションが、後述する方法によりデータ受信装置102へ再開位置識別子を設定する。ここでは、クライアントアプリケーションが設定する再開位置識別子(以下アプリ設定識別子と呼ぶ)として、「UserName」を設定した場合の一例を示す。なおここでは「UserName」をアプリ設定識別子として利用したが、ダウンロードしたアプリケーションが設定する再開位置識別子であれば、他の情報であってもよい。
 
< [4]再開位置とアプリ設定識別子の更新要求例:
アプリ設定識別子=UserName (例:“John”)>
  CDS:UpdateObject(ContentID00, 
                   “<ocap:PresentationPoint>-1</ocap:PresentationPoint>”,
                  “<ocap:PresentationPoint Identifier=“John”> 00:30:00 
                  </ocap:PresentationPoint>”);
 
 さらに、データ受信装置102が再開位置と再開位置識別子を設定する場合の他の例を示す。ここでは、再開位置の再開位置識別子として、装置設定識別子とアプリ設定識別子を組み合わせて管理する。ここでは、データ受信装置102上で動作するクライアントアプリケーションが設定するアプリ設定識別子を利用する際に、どのようなクライアントアプリケーションが設定した再開位置識別子か判断することができるように、アプリ設定識別子に加え、装置設定識別子としてアプリケーション情報を設定する例を示す。
 
< [5]再開位置と装置設定識別子とアプリ設定識別子の更新要求例:
装置設定識別子=アプリケーション情報 ,アプリ設定識別子=UserName (例:“John”)>
  CDS:UpdateObject(ContentID00, 
                   “<ocap:PresentationPoint>-1</ocap:PresentationPoint>”,
                  “<ocap:PresentationPoint app_id=“1”, org_id=“3”,
                   Identifier=“John”> 00:30:00</ocap:PresentationPoint>”);
 
 更に、再開位置識別子のタイプと再開位置識別子を属性として記述する例を以下に示す。
CDS:UpdateObject(ContentID00,
“<ocap:PresentationPoint>-1</ocap:PresentationPoint>”,
  “<ocap:PresentationPoint identifier_type=“UserName”, identifier=“John”>
  00:30:00</ocap:PresentationPoint>”);
 
 なお、ここで示したCDS:UpdateObjectでは再開位置識別子を属性として記述する方法を例示したが、再開位置と再開位置識別子の関連が分かれば、どのような形式であってもよい。他の記述方法の一例として、ocap:PresentationPointの内容として、CSV(Comma Separated Value)リストを用い、再開位置識別子を再開位置の後にカンマ「,」で区切る方法を以下に示す。
 
<再開位置識別子UserName(例:“John”)の追加例>
CDS:UpdateObject(ContentID00,
  “<ocap:PresentationPoint>-1</ocap:PresentationPoint>”,
   “<ocap:PresentationPoint>00:30:00,John
   </ocap:PresentationPoint>”);
 
 また、装置設定識別子を属性として設定し、アプリ設定識別子を、CSVリストを用いてocap:PresentaionPointの内容に設定するように指定してもよい。この構成に従うと、<[5]再開位置と装置設定識別子とアプリ設定識別子の更新要求例>は以下のようになる。
 
  CDS:UpdateObject(ContentID00, 
                    “<ocap:PresentationPoint>-1</ocap:PresentationPoint>”,
                  “<ocap:PresentationPoint app_id=“1”, org_id=“3”> 00:30:00,
                   John</ocap:PresentationPoint>”);
 
 また、複数のocap:PresentationPointを更新する場合のCDS:UpdateObjectの一例を以下に示す。更新前のocap:PresentationPoint及び更新後のocap:PresentationPointの各々にCSVリストを用いて複数の属性値を設定する。そして、更新前のocap:PresentationPoint及び更新後のocap:PresentationPointにおいてCSVリストに記述された順番に更新する。
 
  CDS:UpdateObject(ContentID00,
“<ocap:PresentationPoint UserName=“John”> 00:15:00</ocap:PresentationPoint>,
  <ocap:PresentationPoint UserName=“Bob”> 00:45:00</ocap:PresentationPoint>”,
“ <ocap:PresentationPoint UserName=“John”> 00:30:00
</ocap:PresentationPoint>”);
 
 ここで、上述の例では、再開位置識別子「John」の再開位置「00:15:00」は、再開位置識別子「John」の再開位置「00:30:00」に変更し、再開位置識別子「Bob」の再開位置「00:45:00」は削除することを意味する。
 また、複数のocap:PresentationPointを設定する際に、再開時間と再開開始識別子の組を、それぞれCSVリストを用いて設定してもよい。
 
CDS:UpdateObject(ContentID00,
“<ocap:PresentationPoint>00:30:00,John</ocap:PresentationPoint>”,
  “<ocap:PresentationPoint>00:30:00,John,00:45:00,Bob
   </ocap:PresentationPoint>”);
 
 上述の例は、更新前は、再開位置識別子「John」の再開位置「00:30:00」のみが設定されていたが、これに加え、再開位置識別子「Bob」の再開位置「00:45:00」を追加するものである。
 なお、これまで例示したUpdateObjectの記述方式は、再開位置と再開位置識別子とを関係付けることができれば、これらの方法の組み合わせであってもよい。
 図23に示すように、データ送信装置101は、CDS:UpdateObjectを受信すると、指定されたコンテンツ識別子に対応するコンテンツ属性情報を更新し(2310)、更新結果をデータ受信装置102へ送信する(2311)。つまり、ステップ2310では、データ送信装置101は、更新後の再開位置情報(ocap:PresentationPoint)が、蓄積しているコンテンツ属性情報に含まれるように、そのコンテンツ属性情報を更新する。なお、再開位置識別子の設定については、データ送信装置101が、データ受信装置102及びデータ受信装置103からCDS:UpdateObjectを受け取った時に、再開位置に関連づけた再開位置識別子を付与してもよい。一例としては、データ送信装置101がocap:PresentationPointの更新要求を受けた日時を再開位置識別子として利用する方法や、更新要求を送信したデータ受信装置を識別し、そのデータ受信装置の情報(FriendlyName, UUID, IP address, MAC addressなどといったデータ受信装置固有の情報や、organization_id, application_idなどといったデータ受信装置上で動作するクライアントアプリケーション固有の情報など)を再開位置識別子として設定することもできる。
 データ送信装置101は、CDS:UpdateObjectを受信すると、オブジェクト識別子が「ContentID00」であるコンテンツの再開位置と再開位置識別子を更新する。なお、データ送信装置101が、コンテンツの再開位置及び再開位置識別子を削除する方法は、(1)後述するデータ受信装置からの削除要求を受けたときに削除する方法、(2)ホームネットワーク中の特定のデータ受信装置からデータ転送要求を受けた際に、データ転送の開始位置を確認し、ocap:PresentationPointで管理する再開位置と一致する箇所からデータ転送を要求された場合は、その一致した再開位置と再開位置識別子を削除する方法、あるいは、(3)特定の期間再開されなかった再開位置と再開位置識別子の組をデータ送信装置101で自動的に削除する方法、などであってもよい。
 また、データ送信装置101は、CDSの更新要求を送信したデータ受信装置へCDSの更新を通知する(2312)。更新通知の方法は、UPnP規格にて定義された公知の技術であり、詳細はUPnP規格を参照されたい。
 次に、データ送信装置101とデータ受信装置103との間の通信で、データ受信装置102で中断したマルチメディアデータの送信を再開する動作を説明する。
 データ受信装置103も、データ受信装置102と同様にUPnP AVのCDS:Browseアクションを用いて、データ送信装置101へコンテンツ属性情報の一覧の取得要求を行う(2302)。データ送信装置101は、データ受信装置103に指定されたコンテンツ属性情報の一覧を送信する(2303)。
 図24は、データ受信装置103に指定されたコンテンツ属性情報の一例を示す図である。例えば、データ送信装置101が前述した<[1]再開位置の更新要求例>を受け取ったあとに、データ受信装置103がCDS:Browseレスポンスとして受信する、コンテンツ属性情報の一部は、図24の2401のように例示される。なお、<[1]再開位置の更新要求例>は、データ受信装置102が再開位置識別子を設定しておらず、図24の2401は、データ送信装置101が、該要求を受けた日時を再開位置識別子として付与したものである。
 また、データ送信装置101が、データ受信装置102から次のようなUpdateObjectを受信した後、データ受信装置103がCDS:Browseアクションを送信した場合について考える。
 
CDS:UpdateObject(ContentID00,
  “<ocap:PresentationPoint>00:30:00, LivingRoom, 00:45:00, Tom'sRoom
</ocap:PresentationPoint>”,
  “<ocap:PresentationPoint> 00:30:00, LivingRoom, 00:45:00, Tom'sRoom, 00:20:00,
   Kitchen </ocap:PresentationPoint>”);
 
 図25は、データ受信装置103に指定されたコンテンツ属性情報の他の例を示す図である。上述のような場合、CDS:Browseレスポンスに含まれる、複数の再開位置と再開位置識別子を持つコンテンツ属性情報の一部は図25の2501のように例示される。
 なお、ここでは、UPnP AVの規格にしたがって、ocap:PresentationPointをdesc要素の内容とした例を示したが、再開位置と再開位置識別子を表現するものであれば、他のXML記述方法であってもよい。
 データ受信装置103では、取得したコンテンツ属性情報から、再開位置を示すocap:PresentationPointとコンテンツファイル送信を要求するために必要なURLを取得する(2304)。データ受信装置103は、ocap:PresentationPointより再開位置識別子と再開位置を取得して、クライアントアプリケーションに通知し、クライアントアプリケーションが再生位置を設定することで、その再生位置を決定する(2305)。アプリケーションに通知する方法については後述する。なお、データ受信装置103は、クライアントアプリケーションへ通知することなく、ocap:PresentationPointに指定された再開位置と再開位置識別子を基に、再生位置を決定してもよい。
 なお、再開位置識別子にOCAP規格で定義されたアプリケーション識別子を利用する場合は、データ受信装置103上で動作するクライアントアプリケーションと同じアプリケーション識別子を持つ再開位置情報のみをクライアントアプリケーションに通知する構成であってもよい。一例として、クライアントアプリケーションのorganization_idとapplication_idが、再開位置識別子と等しい場合は、同じアプリケーションが設定したと判断できるため、該クライアントアプリケーションは再開位置やアプリ設定識別子などを利用することができると判断する構成であっても良い。また、organization_idが等しい場合は、アプリケーションを作成した組織が同じであるため、再開位置やアプリ設定識別子などは利用することができると判断する構成であっても良い。このように、アプリケーション情報のいずれか、あるいはその組み合わせにより、再開位置やアプリ設定識別子を利用するか否かを決定する構成であっても良い。この場合、再開位置を利用、更新するアプリケーションを制限することが可能となり、セキュリティの向上などといった効果を有する。
 次にデータ受信装置103は、取得したURLと再生位置を指定しHTTP GETリクエストによってマルチメディアデータ転送を要求する(2306)。データ転送要求の一例としてTimeSeekRange.dlna.orgを用いて再生要求範囲を指定する例を以下に示す。
 
<コンテンツのデータ転送要求>
GET http://192.168.0.3/AVData/0001.m2ts HTTP/1.1
Host: 192.168.0.3
Date: Fri Mar 06 20:00:00 2009 GMT
User-Agent: AVT Client
Connection: Keep-Alive
TimeSeekRange.dlna.org: ntp=00:30:00-01:25:00
 
 データ送信装置101がこのようなデータ転送要求を受け、指定されたデータ転送を行うことで、データ受信装置103は視聴を再開することができる(2307)。
 
<コンテンツのデータ転送要求への応答>
HTTP/1.1 200 OK
Date: Fri Mar 06 20:00:00 2009 GMT
Server: AVT Server
Conenction: Keep-Alive
Content-Type: video/mpeg
Content-Length: 3460361276
TimeSeekRange.dlna.org: ntp=00:30:00-01:25:00/01:55:00bytes=1887436904-534779
8180/7235175300
(空行)
[3460361276byteのデータ]
 
 次に、データ受信装置103上でユーザが視聴を中断する(2308)と、データ受信装置103はデータ受信を終了し、データ送信装置101とのコネクションを切断する。このとき、データ受信装置103は、必要に応じてCDS:UpdateObjectを用いて、データ送信装置101へ再開位置の更新を要求する(2309)。つまり、データ受信装置103は、コンテンツにおいて再生を停止した位置(再生停止位置)に再開位置が更新されるように要求する。
 再開位置の更新要求は、(1)再開位置及び再開位置識別子の削除、(2)新たな再開位置と再開位置識別子の追加、および(3)ある再開位置識別子に関連する再開位置の変更を行うことができる。以下、(1)及び(2)の例としてFriendly Nameを再開位置識別子として利用した場合のCDS:UpdateObject、および、(3)の例としてUserNameを再開位置識別子として利用した場合のCDS:UpdateObjectを示すが、再開位置及び再開位置識別子の削除、更新、追加の方法は再開位置識別子に依存しない。更新は、更新前のocap:PresentationPointを、更新後のocap:PresentationPointにおきかえることで実現できる。
 
(1)再開位置及び再開位置識別子の削除例
 例えば、データ受信装置103でコンテンツの視聴を完了した場合、再開位置を削除することが想定できる。ここでは、データ受信装置103が、再開位置を削除するCDS:UpdateObjectをデータ送信装置101へ送信し、再開位置の情報を削除する。
 
<再開位置の削除例>
  CDS:UpdateObject(ContentID00, 
          “<ocap:PresentationPoint> 00:30:00, friendly_name=“LivingRoom”
           </ocap:PresentationPoint>”,
          “”);
 
 この要求を受信したデータ送信装置101は、該ocap:PresentationPointを削除する。このとき、削除要求を受けたocap:PresentationPointの他にocap:PresentationPointがない場合、データ送信装置101は、該ocap:PresentationPointを削除するとともに、初期値「-1」を内容に持つ、ocap:PresentationPointを追加する。
 なお、この例では、対応するocap:PresentationPointの削除を行うこととしたが、対応するocap:PresentationPointの値を初期値「-1」に更新する要求を送り、データ送信装置101が判断して、該ocap:PresentationPointを削除、もしくは、初期値「-1」を内容に持つocap:PresentationPointへの置き換えを行う構成であっても良い。
 
(2)新たな再開位置と再開位置識別子の変更例
 例えば、データ受信装置103でデータ受信装置102からの視聴を継続した後、更にデータ受信装置103で、コンテンツの再生を中断する場合は、古い再開位置識別子を削除し新たに再開位置識別子を追加することが想定できる。以下にデータ受信装置102で中断した再開位置「00:30:00」と再開位置識別子「friendly_name=“LivingRoom”」を削除し、データ受信装置103で新たに中断した再開位置「00:45:00」と再開位置識別子「friendly_name=“John’sRoom”」を新たに追加する例を示す。
 
<再開位置の変更例>
  CDS:(ContentID00, 
          “<ocap:PresentationPoint friendly_name=“LivingRoom”> 00:30:00
           </ocap:PresentationPoint>”, 
          “<ocap:PresentationPoint friendly_name=“John’sRoom”> 00:45:00
           </ocap:PresentationPoint>”);
 
 
(3)ある再開位置識別子に関連する再開位置の変更例
 例えば、再開位置識別子としてユーザを利用する場合は、どのデータ受信装置で視聴の中断、再開を行ったとしても再開位置識別子はそのままで、再開位置のみを更新することが想定できる。以下に、「UserName = “John”」はそのままで、再開位置のみを更新する。
 
<再開位置識別子に関連する再開位置の変更例>
  CDS:UpdateObject(ContentID00, 
                  “<ocap:PresentationPoint UserName=“John”> 00:30:00 
                  </ocap:PresentationPoint>“,
                  “<ocap:PresentationPoint UserName=“John”> 00:45:00 
                  </ocap:PresentationPoint>“);
 
 データ送信装置101は、CDS:UpdateObjectを受信すると、指定されたコンテンツ識別子に対応するコンテンツ属性情報を更新し(2310)、更新結果をデータ受信装置102へ送信する(2311)。なお、データ送信装置101が、アプリケーション識別子と再開位置を関連づけて再開位置情報として保存している場合、再開位置の更新要求を行ったデータ受信装置上で動作するクライアントアプリケーションと同じアプリケーション識別子(例えば、organization_id、application_id、group_identifierのいずれか、もしくはそれらの組み合わせ)を再開位置情報が持つか、あるいは、再開位置情報に対して更新のパーミッションが与えられている場合は、再開位置を更新するが、それ以外の場合は更新しないという構成であっても良い。この場合、再開位置の更新を行うデータ受信装置もしくはクライアントアプリケーションに制限をかけることが可能となり、ユーザの意図せぬ更新を防止することが可能となるといった効果を有する。
 また、データ送信装置101は、CDSの更新要求を送信したデータ受信装置へCDSの更新を通知する(2312)。
 以上のように、本発明のデータ送信装置101、データ受信装置102、データ受信装置103、ネットワーク104、放送局105、およびケーブル106によって構成されるマルチメディア配信システム107においては、例えばデータ受信装置102にて行っていたコンテンツの視聴を中断しても、別のデータ受信装置103において、的確に視聴を再開することが可能となる。
 以下、本発明のマルチメディア配信システム107を構成する、データ送信装置101、データ受信装置102およびデータ受信装置103について、更に詳細に説明する。
 まず、データ送信装置101について説明する。
 図2は、本実施の形態におけるデータ送信装置101を構成する構成要素の関係を示したブロック図である。データ送信装置101は、入力部201、第1メモリ202、第2メモリ203、受信部204、多重分離手段205、デスクランブラ206、TSデコーダ207、映像出力部208、音声出力部209、TSマルチプレクサ210、ネットワーク部211、およびCPU212で構成される。
 入力部201は、フロントパネルやリモコン受光器等で構成され、ユーザからのチャンネル選択等の指示を受け付ける。
 図3は、フロントパネルで入力部201を構成した場合の一例を示す図である。フロントパネル300は、上カーソルボタン301、下カーソルボタン302、左カーソルボタン303、右カーソルボタン304、OKボタン305、取消ボタン306、EPGボタン307、およびシアターボタン308の8つのボタンを備えている。ユーザがボタンを押下すると、押下されたボタンの識別子が、CPU212に通知される。
 第1メモリ202は、RAM等で構成され、CPU212が一時的にデータを保存する際に使用される。
 第2メモリ203は、フラッシュメモリまたはハードディスク等で電源が停止しても情報を保持可能なデバイスで構成され、CPU212が実行するプログラムを保存する。第2メモリ203は、SDメモリーカード等の取り外し可能な記憶デバイスを用いていてもよい。
 受信部204は、CATV局からのケーブルに接続され放送波を受信し、CPU212から指定された周波数にチューニングし、MPEGトランスポートストリームを抽出して、多重分離手段205に引き渡す。
 多重分離手段205は、受信部204からMPEGトランスポートストリームを受け取り、CPU212から指定された情報を抽出しCPU212に引き渡す。またMPEGトランスポートストリームをそのままデスクランブラ206に引き渡す。
 デスクランブラ206は、多重分離手段205から与えられたスクランブルされているMPEGトランスポートストリームをデスクランブル(=復号)し、TSデコーダ207に引き渡す。デスクランブラ206は、データ送信装置101に内蔵されたモジュールでも良いし、北米ケーブル受信機で導入されているCableCARD(TM)でも実施可能である。CableCARDの仕様は米国CableLabsが策定したCableCARD Interface Specificationに記載されており、ここでは説明を省略する。
 TSデコーダ207は、CPU212から音声データ、映像データ、またはPSI/SI情報などのセクションデータの識別子を受け取る。さらに、デスクランブラ206から受け取ったデスクランブルされたストリームから、受け取った音声データ、映像データ、またはPSI/SI情報などのセクションデータの識別子に対応するデータを抽出する、抽出した映像データを映像出力部208に、音声データを音声出力部209に引き渡す。また、その両方と、セクションデータを、TSマルチプレクサ210に引き渡す。
 映像出力部208は映像出力端子を含み、受け取った映像データを映像出力端子に対応した映像データに変換して出力する。映像出力端子の例としては、コンポジットケーブル端子などがある。
 音声出力部209は音声出力端子を含み、受け取った音声データを音声出力端子に対応した音声データに変換して出力する。音声出力端子の例としては、イヤホン端子や、コンポジットケーブル端子などがある。
 TSマルチプレクサ210は、受け取った映像データ、音声データ、セクションデータからMPEG2トランスポートストリームを構成し、該MPEG2トランスポートストリームをネットワーク部211に引き渡す。PSI/SI情報は必要に応じて書き換えられる。
 ネットワーク部211は、ネットワークインタフェースを含み、CPU212から受け取ったデータを、ネットワークインタフェースが接続されたネットワークの物理メディアに応じた信号に変換して出力する。また、ネットワークインタフェースから信号を受信し、IPネットワークで規定されたパケットに変換して、CPU212へ引き渡す。
 CPU212は、第2メモリ203が記憶するプログラムを実行することで、受信部204、多重分離手段205、デスクランブラ206、TSデコーダ207、TSマルチプレクサ210、およびネットワーク部211を制御する。
 図4は、第2メモリ203に記憶され、CPU212に実行されるプログラムの一例を示す構成図である。
 プログラム400は、複数のサブプログラムで構成され、具体的にはOS401、EPG402、JavaVM403、サービスマネージャ404、およびJavaライブラリ405で構成される。
 OS401は、データ送信装置101の電源が投入されると、CPU212が起動するサブプログラムである。OSは、オペレーティングシステムの略であり、Linux等が一例である。OS401は、他のサブプログラムを並行して実行するカーネル401a及びライブラリ401bで構成される公知の技術の総称であり、詳細な説明は省略する。本実施の形態においては、OS401のカーネル401aは、EPG402とJavaVM403をサブプログラムとして実行する。また、ライブラリ401bは、これらサブプログラムに対して、データ送信装置101が保持する構成要素を制御するための複数の機能を提供する。
 本実施の形態では、ライブラリ401bは機能の一例として、チューナ401b1、限定解除401b2、AV再生401b3、NET401b4を含む。
 チューナ401b1は、他のサブプログラムやJavaライブラリ405のTuner405cから周波数を含むチューニング情報を受け取り、受信部204に引き渡す。受信部204は与えられたチューニング情報に基づき復調処理を行い、復調したデータを多重分離手段205に引き渡すことができる。この結果、他のサブプログラム及びJavaライブラリ405のTuner405cはライブラリ401bを通して受信部204を制御することができる。
 限定解除401b2は、他のサブプログラムやJavaライブラリ405のCA405dから情報を受け取り、デスクランブラ206に引き渡す。
 AV再生401b3は、他のサブプログラムやJavaライブラリ405のJMF405aから、音声のパケットIDと映像のパケットIDを受け取る。受け取った音声のパケットIDと映像のパケットIDを、TSデコーダ207に与える。この結果、TSデコーダ207は与えられたパケットIDに基づいて、フィルタリングを行い、映像・音声の再生を実現する。
 NET401b4は、他のサブプログラムやJavaライブラリ405のネットワークライブラリ405eから受け取ったデータを、IPネットワークで規定されるアプリケーション層より下のプロトコルのパケットを作成する。アプリケーション層より下のプロトコルとは、例えばTCPパケット、UDPパケット、またはIPパケットなどである。これをネットワーク部211に引き渡すことで、ネットワーク104を介して他の機器にメッセージおよびデータを送信する。また、NET401b4は、ネットワーク104を介して他の機器からメッセージを受信したときに、他のサブプログラムやJavaライブラリ405のネットワークライブラリ405eに、そのメッセージをアプリケーション層のプロトコルのパケットに変換して引き渡す。アプリケーション層のプロトコルとは、例えば、HTTP(Hypertext Transfer Protocol)やRTP(Real-time Transport Protocol)などである。
 EPG402は、ユーザに番組一覧を表示し、ユーザからの入力を受け付ける番組表示部402aと、チャンネル選局を行う再生部402bで構成される。ここで、EPGはElectric Program Guideの略である。EPG402は、データ送信装置101の電源が投入されると、カーネル401aによって起動される。起動されたEPG402の内部では、番組表示部402aと再生部402bが同時に起動される。番組表示部402aは起動されると、データ送信装置101の入力部201を通して、ユーザからの入力を待つ。ここで、入力部201が図3で示されるフロントパネルで構成されている場合、ユーザが、入力部201のEPGボタン307を押下すると、EPGボタンの識別子がCPU212に通知される。CPU212上で動作するサブプログラムであるEPG402の番組表示部402aは、この識別子を受け取り、番組情報表示データを作成し、図示していないモニタ出力手段によりモニタ510に出力する。モニタ510は、データ送信装置101が備えるものであっても良いし、データ送信装置101とコンポジットケーブルやHDMI(High-Definition Multimedia Interface)ケーブルなどで接続されたテレビであっても良い。モニタ510は、受信した番組情報表示データを表示する。
 図5A及び図5Bは、モニタ510に表示された番組表の一例を示す図である。図5Aを参照して、モニタ510には、格子状に番組情報が表示されている。列501には、時刻情報が表示されている。列502には、チャンネル名「チャンネル1」と、列501の時刻に対応する時間帯に放映される番組が表示されている。「チャンネル1」では、9:00~10:30に番組「ニュース9」が放映され、10:30~12:00に番組「映画AAA」が放映されることを表す。列503も列502同様、チャンネル名「チャンネル2」と、列501の時刻に対応する時間帯に放映される番組が表示されている。9:00~11:00に番組「映画BBB」が放映され、11:00~12:00に「ニュース11」が放映される。530は、カーソルである。カーソル530は、フロントパネル300の左カーソルボタン303と右カーソルボタン304を押下すると移動する。図5Aの状態で、右カーソルボタン304を押下すると、カーソル530は右に移動し、図5Bのようになる。また、図5Bの状態で、左カーソルボタン303を押下すると、カーソル530は左に移動し、図5Aのようになる。
 図5Aの状態で、フロントパネル300のOKボタン305が押下されると、番組表示部402aは、「チャンネル1」の識別子を再生部402bに通知する。図5Bの状態で、フロントパネル300のOKボタン305が押下されると、番組表示部402aは、「チャンネル2」の識別子を再生部402bに通知する。
 また、番組表示部402aは、表示する番組情報を、多重分離手段205を通して定期的に、第2メモリ203に記憶しておく。一般的に、放送局からの番組情報の取得は時間が掛かる。入力部201のEPGボタン307が押下された時、第2メモリ203に予め保存された番組情報を表示することで、素早く番組表を表示することができる。
 図6は、第2メモリ203に記憶している番組情報の一例を示す図である。番組情報は表形式で格納されている。列601は、チャンネルの識別子である。列602は、番組名である。列603は番組の放送開始時間、列604は放送終了時間である。列605は、番組の音声種別を表しており、モノラル音声、ステレオ音声、および5.1チャンネル音声をそれぞれ「モノラル」、「ステレオ」、および「5.1」と表記している。列606は、番組の種別を表している。通常番組は空欄であり、「映画」は映画、「スポ」はスポーツ番組を表す。行611~614の各行は、それぞれひとつの番組情報を表す。この例では、ひとつの番組情報は、チャンネルの識別子、番組名、放送開始時間、放送終了時間、および番組の音声種別の組となる。例えば、行611はチャンネルの識別子「1」、番組名「ニュース9」、放送開始時間「9:00」、放送終了時間「10:30」、音声種別「モノラル」、および番組の種別「通常」を含む組となっている。
 再生部402bは、受け取ったチャンネルの識別子を用いて、チャンネルを再生する。すなわちチャンネルを構成する映像と音声を再生する。チャンネルの識別子とチャンネルの関係は、チャンネル情報として、第2メモリ203に予め格納されている。
 図7は、第2メモリ203に格納されているチャンネル情報の一例を示す図である。チャンネル情報は表形式で格納されている。列701は、チャンネルの識別子である。列702は、チャンネル名である。列703はチューニング情報である。ここで、チューニング情報は周波数や転送レート、符号化率などを含み、受信部204に与える値である。列704はプログラムナンバーである。プログラムナンバーとは、MPEG2規格で規定されているPMTを識別するための番号である。PMTに関しては、後述する。行711~714の各行は、各チャンネルの識別子、チャンネル名、チューニング情報の組となる。行711は識別子「1」、チャンネル名「チャンネル1」、チューニング情報である周波数「150MHz」、およびプログラムナンバー「101」を含む組となっている。再生部402bは、チャンネルの再生を行うため、受け取ったチャンネルの識別子をそのままサービスマネージャ404に引き渡す。
 また、再生部402bは、再生中に、ユーザがフロントパネル300の上カーソルボタン301と下カーソルボタン302を押下すると、入力部201からCPU212を通して、押下されたカーソルボタンに対応する通知を受け取り、再生しているチャンネルを変更する。上カーソルボタン301を押下すると、現在再生中のチャンネルよりもひとつ小さいチャンネルの識別子を持つチャンネルを再生し、また下カーソルボタン302を押下すると、現在再生中のチャンネルよりもひとつ大きいチャンネルの識別子を持つチャンネルを再生する。まず、再生部402bは、第2メモリ203に現在再生中のチャンネルの識別子を記憶する。
 図8A、図8B及び図8Cは、第2メモリ203に保存しているチャンネルの識別子の例を示す図である。図8Aでは、識別子「3」が記憶されており、図7を参照し、チャンネル名「TV 3」のチャンネルが再生中であることを示す。図8Aの状態で、ユーザが上カーソルボタン301を押下すると再生部402bは、図7のチャンネル情報を参照し、表中で現在再生中のチャンネルよりもひとつ小さい識別子を持つチャンネルであるチャンネル名「チャンネル2」のチャンネルに再生を切り変えるため、サービスマネージャ404にチャンネル名「チャンネル2」の識別子「2」を引き渡す。同時に、第2メモリ203に記憶されているチャンネルの識別子を「2」に書き換える。図8Bは、チャンネルの識別子が書き換えられた状態を表す。また、図8Aの状態で、ユーザが下カーソルボタン302を押下すると再生部402bは、図7のチャンネル情報を参照し、表中で現在再生中のチャンネルよりもひとつ大きい識別子を持つチャンネルであるチャンネル名「TV Japan」のチャンネルに再生を切り変えるため、サービスマネージャ404にチャンネル名「TV Japan」の識別子「4」を引き渡す。同時に、第2メモリ203に記憶されているチャンネルの識別子を「4」に書き換える。図8Bは、チャンネルの識別子が書き換えられた状態を表す。チャンネルの識別子は、第2メモリ203に記憶されているので、データ送信装置101の電源が切られた際も保存されている。
 さらに再生部402bは、データ送信装置101の電源が投入された際に、起動されると、第2メモリ203に記憶されているチャンネルの識別子を読み出す。そして、そのチャンネルの識別子をサービスマネージャに引渡す。これにより、データ送信装置101は、電源投入時に前回の稼動時に再生されていた最後のチャンネルの再生を開始することができる。
 JavaVM403は、Java(TM)言語で記述されたプログラムを逐次解析し実行するJavaバーチャルマシンである。Java言語で記述されたプログラムはバイトコードと呼ばれる、ハードウェアに依存しない中間コードにコンパイルされる。Javaバーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のJavaバーチャルマシンは、バイトコードをCPU212が理解可能な実行形式に翻訳してから、CPU212に引渡し、実行することも行う。JavaVM403は、カーネル401aに実行するJavaプログラムを指定され起動される。本実施の形態では、カーネル401aは、実行するJavaプログラムとしてサービスマネージャ404を指定する。Java言語の詳細は、書籍「Java Language Specification(ISBN 0-201-63451-1)」等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、JavaVM自体の詳細な動作などは、「Java Virtual Machine Specification(ISBN 0-201-63451―X)」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
 サービスマネージャ404は、Java言語で書かれたJavaプログラムであり、JavaVM403によって逐次実行される。サービスマネージャ404は、JNI(Java Native Interface)を通して、Java言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。JNIに関しても、書籍「Java Native Interface」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
 まず、デジタル放送を受信し、受信したマルチメディアデータを再生する場合の処理について説明する。
 サービスマネージャ404は、JNIを通して、再生部402bよりチャンネルの識別子を受け取る。
 サービスマネージャ404は、最初にJavaライブラリ405の中にあるTuner405cに、チャンネルの識別子を引き渡し、チューニングを依頼する。Tuner405cは、第2メモリ203が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、サービスマネージャ404がチャンネルの識別子「2」をTuner405cに引き渡すと、Tuner405cは、図7の行712を参照して、対応するチューニング情報「156MHz,」を獲得する。Tuner405cは、OS401のライブラリ401bのチューナ401b1を通して、受信部204にチューニング情報を引き渡す。受信部204は与えられたチューニング情報に従って放送局から送信されてきた信号を復調し、多重分離手段205に引き渡す。
 次にサービスマネージャ404は、Javaライブラリ405の中にあるCA405dにデスクランブルを依頼する。CA405dは、OS401のライブラリ401bの限定解除401b2を通して復号に必要な情報をデスクランブラ206に与える。デスクランブラ206は、与えられた情報を元に、受信部204から与えられた信号を復号しTSデコーダ207に引き渡す。
 サービスマネージャ404は、Javaライブラリ405の中にあるJMF405aにチャンネルの識別子を与え、映像・音声の再生を依頼する。
 まず、最初にJMF405aは、再生すべき映像と音声を特定するためのパケットIDをPATおよびPMTから取得する。PATやPMTはMPEG2規格で規定されている、MPEG2トランスポートストリーム内の番組構成を表現するテーブルであり、MPEG2トランスポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共に送信されるものである。詳細は規格書を参照されたい。ここでは、概略のみ説明する。PATは、Program Association Tableの略で、パケットID「0」のパケットに格納され送信されている。JMF405aは、PATを取得するため、OS401のライブラリ401bを通して、多重分離手段205にパケットID「0」を指定する。多重分離手段205がパケットID「0」でフィルタリングを行い、CPU212に引き渡すことでJMF405aは、PATのパケットを収集する。
 図9は、収集したPATの情報の一例を模式的に表した図である。列901は、プログラムナンバーである。列902は、パケットIDである。列902のパケットIDはPMTを取得するために用いられる。行911~913は、チャンネルのプログラムナンバーと対応するパケットIDの組である。ここでは、三つのチャンネルが定義されている。行911はプログラムナンバー「101」とパケットID「501」の組が定義されている。今、JMF405aに与えられたチャンネルの識別子が「2」とすると、JMF405aは、図9の行912を参照して、対応するプログラムナンバー「102」を獲得し、次に、図9のPATの行912を参照し、プログラムナンバー「102」に対応するパケットID「502」を獲得する。PMTは、Program Map Tableの略で、PATで規定されたパケットIDのパケットに格納され送信されている。JMF405aは、PMTを取得するため、OS401のライブラリ401bを通して、多重分離手段205にパケットIDを指定する。ここで、指定するパケットIDは「502」とする。多重分離手段205がパケットID「502」でフィルタリングを行い、CPU212に引き渡すことでJMF405aは、PMTのパケットを収集する。
 図10は、収集したPMTの情報の一例を模式的に表した図である。列1001は、ストリーム種別であり。列1002は、パケットIDである。列1002で指定されるパケットIDのパケットには、ストリーム種別で指定された情報がペイロードに格納され送信されている。列1003は補足情報である。行1011~1014はエレメンタリーストリームと呼ばれる、パケットIDと送信している情報の種別の組である。行1011は、ストリーム種別「音声」とパケットID「5011」の組であり、パケットID「5011」のペイロードには音声が格納されていることを表す。JMF405aは、PMTから再生する映像と音声のパケットIDを獲得する。図10を参照して、JMF405aは、行1011から音声のパケットID「5011」を、行1012から映像のパケットID「5012」を獲得する。
 次に、JMF405aは、OS401のライブラリ401bのAV再生401b3に獲得した音声のパケットIDと映像のパケットIDを引き渡す。これを受けて、AV再生401b3は、受け取った音声のパケットIDと映像のパケットIDを、TSデコーダ207に与える。TSデコーダ207は与えられたパケットIDでフィルタリングを行う。ここではパケットID「5011」のパケットを音声出力部209に、パケットID「5012」のパケットを映像出力部208に、それぞれ引き渡す。音声出力部209は、与えられたパケットを適宜変換し(例えばデジタル-アナログ変換)出力する。映像出力部208は、与えられたパケットを適宜変換し(例えばデジタル-アナログ変換)出力する。
 最後にサービスマネージャ404は、Javaライブラリ405の中にあるAM405bにチャンネルの識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、MPEG2トランスポートストリームに含まれるJavaプログラムを抽出し、JavaVM403に実行させることである。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の略である。
 AM405bは、まず、AITを獲得するため、JMF405a同様PATおよびPMTを取得し、AITが格納されているパケットのパケットIDを獲得する。今、与えられたチャンネルの識別子が「2」で、図9のPAT、および図10のPMTが送信されていると、JMF405aと同様の手順で、AM405bは図10のPMTを獲得する。AM405bは、PMTからストリーム種別が「データ」で補足情報として「AIT」を持つエレメンタリーストリームからパケットIDを抽出する。図10を参照して、行1013のエレメンタリーストリームが該当し、パケットID「5013」を獲得する。
 AM405bは、OS401のライブラリ401bを通して多重分離手段205にAITのパケットIDを与える。多重分離手段205は、与えられたパケットIDでフィルタリングを行い、CPU212に引き渡す。この結果、AM405bは、AITのパケットを収集することができる。
 図11は、収集したAITの情報の一例を模式的に表した図である。列1101はJavaプログラムの識別子である。列1102はJavaプログラムの制御情報である。制御情報には「autostart」、「present」または「kill」などがあり、「autostart」は即時にデータ送信装置101がこのプログラムを自動的に実行することを意味し、「present」は自動実行しないことを意味し、「kill」はプログラムを停止することを意味する。列1103は、DSMCC方式でJavaプログラムを含んでいるパケットIDを抽出するためのDSMCC識別子である。列1104はJavaプログラムのプログラム名である。行1111と1112は、Javaプログラムの情報の組である。行1111で定義されるJavaプログラムは、識別子「301」、制御情報「autostart」、DSMCC識別子「1」、およびプログラム名「a/TopXlet」の組である。行1112で定義されるJavaプログラムは、識別子「302」、制御情報「present」、DSMCC識別子「1」、およびプログラム名「b/GameXlet」の組である。ここでふたつのJavaプログラムは同じDSMCC識別子を持つが、これはひとつのDSMCC方式でエンコードされたファイルシステム内にふたつのJavaプログラムが含まれていることを表す。ここでは、Javaプログラムに対して四つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はDVB-MHP規格を参照されたい。
 AM405bは、AITの中から「autostart」のJavaプログラムを見つけ出し、対応するDSMCC識別子及びJavaプログラム名を抽出する。図11を参照して、AM405bは行1111のJavaプログラムを抽出し、DSMCC識別子「1」及びJavaプログラム名「a/TopXlet」を獲得する。
 次にAM405bは、AITから取得したDSMCC識別子を用いて、JavaプログラムをDSMCC方式で格納しているパケットのパケットIDをPMTから獲得する。具体的には、PMTの中でストリーム種別が「データ」で、補足情報のDSMCC識別子が合致するエレメンタリーストリームのパケットIDを取得する。
 今、DSMCC識別子が「1」であり、PMTが図10とすると、行1014のエレメンタリーストリームが合致し、AM405bはパケットID「5014」を取り出す。
 AM405bは、OS401のライブラリ401bを通して多重分離手段205にDSMCC方式でデータが埋めこめられたパケットのパケットIDを指定する。ここでは、パケットID「5014」を与える。多重分離手段205は、与えられたパケットIDでフィルタリングを行い、CPU212に引き渡す。この結果、AM405bは、必要なパケットを収集することができる。AM405bは、収集したパケットから、DSMCC方式に従ってファイルシステムを復元し、第1メモリ202あるいは第2メモリ203に保存する。ファイルシステム等のデータを取り出し第1メモリ202あるいは第2メモリ203に保存することを以降、ダウンロードと呼ぶ。
 図12は、ダウンロードしたファイルシステムの一例を示す図である。図中、丸はディレクトリを四角はファイルを表し、1201はルートディレクトリ、1202はディレクトリ「a」、1203はディレクトリ「b」、1204はファイル「TopXlet.class」、1205はファイル「GameXlet.class」である。
 ここでは、MPEG2トランスポートストリームからファイルシステムをダウンロードする例を記載したが、OCAP仕様では、IPネットワークを用いたダウンロードなども規定している。また、AITではなくXAITと呼ばれる情報を用いてファイルシステムの存在位置を特定し、ファイルシステムをダウンロードする方法も規定されている。
 次にAM405bは、第1メモリ202あるいは第2メモリ203にダウンロードしたファイルシステム中から実行するJavaプログラムをJavaVM403に引き渡す。今、実行するJavaプログラム名が「a/TopXlet」とすると、Javaプログラム名の最後に「.class」を付加したファイル「a/TopXlet.class」が実行すべきファイルとなる。「/」はディレクトリやファイル名の区切りであり、図12を参照して、ファイル1204が実行すべきJavaプログラムである。次にAM405bは、ファイル1204をJavaVM403に引き渡す。
 JavaVM403は、引き渡されたJavaプログラムを実行する。
 サービスマネージャ404は、他のチャンネルの識別子を受け取ると、Javaライブラリ405に含まれる各ライブラリを通して再生している映像・音声及びJavaプログラムの実行を、同じくJavaライブラリ405に含まれる各ライブラリを通して停止し、新たに受け取ったチャンネルの識別子に基づいて、映像・音声の再生及びJavaプログラムの実行を行う。
 また、サービスマネージャ404は、再生部402bだけでなく、JavaVM403上で実行されるJavaプログラムからチャンネルの識別子を受け取る機能も備える。具体的には、チャンネルの識別子を受け取るためのJava言語のクラス及びそのメソッドを提供する。チャンネルの識別子を受け取ると、サービスマネージャ404は、Javaライブラリ405に含まれる各ライブラリを通して現在再生している映像・音声及びJavaプログラムの実行を、同じくJavaライブラリ405に含まれる各ライブラリを通して停止し、その後、新たに受け取ったチャンネルの識別子に基づいて、新しい映像・音声の再生及びJavaプログラムの実行を行う。
 次に、データ送信装置101において、デジタル放送を受信して、そのマルチメディアデータを第2メモリ203に蓄積する処理について説明する。
 図13は、データ送信装置101が、第2メモリ203にマルチメディアデータを蓄積する形態の一例を示す図である。データ送信装置101は、マルチメディアデータとその属性情報(コンテンツ属性情報)、属性情報テーブル、URIテーブル、および再開位置情報テーブルを第2メモリ203に記憶する。図13において、1301、1302、…はマルチメディアデータを、1311、1312、・・・はマルチメディアデータの属性情報(コンテンツ属性情報)を、1321は属性情報テーブルを、1331はURIテーブルを、1332は再開位置情報テーブルを、それぞれ表す。マルチメディアデータ1301、1302、・・・は、MPEGトランスポートストリーム形式の符号化されたマルチメディアデータである。コンテンツ属性情報1311、1312、・・・は、各マルチメディアデータのタイトルなどの付加的な情報である。ここでは、コンテンツ属性情報1311はマルチメディアデータ1301の属性情報を、コンテンツ属性情報1312はマルチメディアデータ1302の属性情報を、それぞれ表すこととする。
 図14は、本実施の形態におけるコンテンツ属性情報の一例を表す図である。本実施の形態においては、コンテンツ属性情報はXML(Extensible Markup Language)で定義されたテキストで表すものとする。図14では、コンテンツ属性情報の要素であるContentIDで該コンテンツ識別子を、コンテンツ属性情報の要素であるParentIDで、該コンテンツが含まれるコンテナのIDを、コンテンツ属性情報の要素であるFileNameで該マルチメディアデータのファイル名を、コンテンツ属性情報の要素であるChannelIDで図6の列601で示されているような該番組が放送されたチャンネルの識別子を、コンテンツ属性情報の要素であるProgramNoで図7の列704に示されているようなPMTを検索するプログラムナンバーを、コンテンツ属性情報の要素であるTitleで図6の列602で示されているような番組名を、コンテンツ属性情報の要素であるGunreで図6の列606に示されているような番組の種別を、コンテンツ属性情報の要素であるDateで該番組が放送された日時を、コンテンツ属性情報の要素であるRecordDateで該番組が録画された日時を、コンテンツ属性情報の要素であるocap:PresentationPoint(再開位置情報)で、該マルチメディアデータのレジュームを実現する再開位置とその再開位置識別子を、それぞれ表す。
 なお、コンテンツ属性情報は、このようなXMLによる構成に限るものではなく、他の形式、例えば、バイナリデータとして記録しても良い。
 属性情報テーブル1321は、コンテンツ識別子と、該識別子で表されるコンテンツ属性情報を記録したファイルとの対応表である。
 図15は、属性情報テーブル1321の一例を示す図である。図15において、列1501はコンテンツ識別子を表し、列1502はコンテンツ属性情報のファイル名を表す。行1511~1513は、コンテンツ識別子と対応するコンテンツ属性情報のファイル名の組である。行1511からは、識別子「ContentID00」のコンテンツ属性情報はファイル「0001.attr」に記録されていることを読み取ることができる。
 URIテーブル1331は、コンテンツ識別子と、該識別子で表されるコンテンツにアクセスするためのURI(Uniform Resource Identifier)との対応を示す。
 図16は、URIテーブル1331の構成の一例を示す図である。図16において、列1601は各コンテンツ識別子を示し、列1602は各コンテンツにアクセスするためのURIを表す。各行1611~1613は、コンテンツ識別子とURIの組が表されている。例えば、行1611は、識別子「ContentID00」のコンテンツのURIは、「http://192.168.0.3/AVData/0001.m2ts」であることを表している。再開位置情報テーブル1332については、後述する。
 以下、蓄積する処理について説明する。まず、デスクランブルまでの動作は上記再生する場合と同様である。次に、サービスマネージャ404は、Javaライブラリ405の中のRec405jに該マルチメディアデータの蓄積を依頼する。Rec405jは、まず、上記JMF405aおよびAM405bと同様に、PATおよびPMTを取得し、蓄積する番組に関する映像データ、音声データ、および各セクションデータのパケットIDを取得する。今、与えられたチャンネルの識別子が「2」で、図9のPATおよび図10のPMTが送信されていると、JMF405aと同様の手順で、Rec405jは図10のPMTを獲得する。蓄積するデータは、図10のPMTに記述された全てのデータである。
 Rec405jは、OS401のライブラリ401bを通してTSデコーダ207に、これらのパケットIDを与え、TSマルチプレクサ210に出力させる。TSデコーダ207は、与えられたパケットIDでフィルタリングを行い、TSマルチプレクサ210にデータを引き渡す。なお、セクションデータに関しては、それぞれにバージョンナンバーがつけられており、TSデコーダ207は、同じ種類のデータは、バージョンナンバーごとに1回のみ出力し、あとはフィルタリングする構成であっても良い。
 また、Rec405jは、OS401のライブラリ401bを通してTSマルチプレクサ210に、何種類のデータが送られてくるかを与えて、TSデコーダ207から引き渡されたデータから、MPEG2トランスポートストリームを構成させる。TSマルチプレクサ210は、構成したMPEGトランスポートストリームを、CPU212に引き渡す。
 さらに、Rec405jは、Javaライブラリ405の中のIO405gに依頼して、CPU212がTSマルチプレクサ210から受け取ったMPEGトランスポートストリームを第2メモリ203に書き込む。さらに、Rec405jは、サービスマネージャ404に依頼して、該番組のチャンネルの識別子を受け取り、IO405gに依頼して、第2メモリ203に記憶された図6に示す番組情報のうち、蓄積したマルチメディアデータに対応するものの番組情報を読み取る。さらに、該蓄積したマルチメディアデータに識別子を発行し、取得した番組情報と、マルチメディアデータを蓄積したファイル名とからコンテンツ属性情報を作り、IO405gに依頼して、該属性情報を第2メモリ203に書き込む。さらに、Rec405jは、IO405gに依頼して、属性情報テーブル1321を読み出し、内容を更新して、IO405gに依頼して第2メモリ203に書き込むことにより、属性情報テーブル1321を更新する。
 次に、受信したデジタル放送のマルチメディアデータを、ネットワーク部211から出力する場合の処理について説明する。
 まず、Javaライブラリ405の中にあるネットワークライブラリ405eは、ネットワーク104に接続されたデータ受信装置からの要求を受け、サービスマネージャ404に、要求されたチャンネルの識別子を与える。サービスマネージャ404では、受け取ったチャンネルの識別子をTuner405cに与えてチューニングを依頼し、さらにCA405dにデスクランブルを依頼する。続いて、サービスマネージャ404は、ネットワークライブラリ405eに処理を返す。
 ネットワークライブラリ405eでは、上記Rec405jと同様に、TSデコーダ207およびTSマルチプレクサ210を制御して、該番組の映像データ、音声データ、およびセクションデータよりMPEGトランスポートストリームを作成する。
 さらに、ネットワークライブラリ405eは、OS401のライブラリ401bのNET401b4に送信先のアドレスを与える。続いて、ネットワークライブラリ405eは、TSマルチプレクサ210から受け取ったMPEG2トランスポートストリームを、送信するアプリケーション層のプロトコルに応じた形式に変換して、NET401b4に順次引き渡す。アプリケーション層のプロトコルとは、例えば、HTTPやRTPといったものである。これにより、NET401b4は、送信先アドレスを参照して、引き渡されたデータをIPネットワークのパケットに変換し、ネットワーク部211に引き渡す。ネットワーク部211は、引き渡されたデータを、接続されたネットワークの物理メディアに応じた信号に変換して出力する。
 次に、第2メモリ203に蓄積したマルチメディアデータを再生する場合の処理について説明する。サービスマネージャ404は、コンテンツ識別子を受け取ると、Javaライブラリ405の中のIO405gに依頼して、第2メモリ203から属性情報テーブル1321を読み出し、該コンテンツ識別子のコンテンツ属性情報を記録したファイルを検索する。図15の属性情報テーブル1321にて、コンテンツ識別子が「ContentID00」の場合、該ファイルは「0001.attr」にあたる。続いて、サービスマネージャ404は、IO405gに依頼して、第2メモリ203から該属性情報を記録したファイルを読み出す。読み出したコンテンツ属性情報から、該コンテンツのマルチメディアデータを記録したファイル名を取得する。図14のコンテンツ属性情報の場合、このファイル名は「0001.m2ts」である。
 続いて、サービスマネージャ404は、IO405gに依頼して、該マルチメディアデータのファイルからMPEGトランスポートストリームを読み出す。IO405gは、OS401のライブラリ401bを通してデータを読み出し、CPU212に引き渡す。サービスマネージャ404は、OS401のライブラリ401bを通して、読み出したMPEGトランスポートストリームを多重分離手段205に引き渡す。
 次にサービスマネージャ404は、Javaライブラリの中にあるCA405dに、デスクランブラ206はデータをデスクランブルせず、スルーするように依頼する。CA405dは、OS401のライブラリ401bの限定解除401b2を通してデスクランブラ206に情報を与える。これにより、デスクランブラ206は、多重分離手段205から引き渡されたデータを、そのままTSデコーダ207に引き渡す。
 次にサービスマネージャ404は、読み出したコンテンツ属性情報からチャンネルの識別子もしくはプログラムナンバーを読み出し、Javaライブラリ405の中にあるJMF405aに与えて、再生を依頼する。以下、上記の放送から受信したコンテンツの場合と同様の処理によって、映像データおよび音声データの再生が行える。
 さらに、サービスマネージャ404は、Javaライブラリの中にあるAM405bにチャンネルの識別子もしくはプログラムナンバーを与えて、データ放送の再生を依頼する。以下、上記の放送から受信したコンテンツと同様の処理によって、データ放送の再生が行える。
 Javaライブラリ405は、第2メモリ203に格納されている複数のJavaライブラリの集合である。本実施の形態では、Javaライブラリ405は、JMF405a、AM405b、Tuner405c、CA405d、ネットワークライブラリ405e、再生Lib405f、IO405g、AWT405h、SI405i、およびRec405j等を含んでいる。
 JMF405a、AM405b、Tuner405c、CA405d、およびRec405jの機能は、既に記述されているので省略する。
 再生Lib405fは、第2メモリ203が記憶している、現在再生しているチャンネルの識別子をJavaプログラムに渡すためのJava言語のクラスおよびメソッドを(以下Java APIと記述)提供する。このJava APIを利用することで、Javaプログラムは、現在再生中のチャンネルを知ることができる。
 IO405gは、Javaプログラムが第2メモリ203にデータを書き込むためのJava API、あるいは、その書き込んだデータを第2メモリ203から読み込むためのJava APIをJavaプログラムに提供する。このAPIを利用することで、Javaプログラムは、任意のデータを第2メモリ203に保存することができる。この保存されたデータはデータ送信装置101の電源がオフになっても消えないので、データ送信装置101の電源が投入された後、再びそのデータを読み込むことができる。
 AWT405hは、Javaプログラムが描画を行ったり、入力部201からのキー入力通知を受け取るためのJava APIを提供する。具体的には、「The Java class Libraries Second Edition,Volume 2」(ISBN0-201-31003-1)で既定されるjava.awtパッケージ、java.awt.eventパッケージ及びその他のjava.awtのサブパッケージが相当する。ここでは、詳細な説明を省略する。
 SI405iは、Javaプログラムがチャンネル情報や電子番組表情報を取得するJava APIを提供する。具体的には、Java TV仕様などが存在する。また、生のバイナリデータを放送中のMPEG2トランスポートストリームから取得するMPEGセクションフィルタAPIがOCAP仕様の中で定義されており、送信されてきた独自の電子番組データをJavaアプリケーションが理解して取り扱うことも出来る。
 ネットワークライブラリ405eは、OS401のライブラリ401bのNET401b4を通して、ネットワーク104に接続された、データ受信装置102およびデータ受信装置103と通信するものである。通信は、コンテンツ一覧やEPGの送信、データ受信装置からのマルチメディアデータ送信や、送信中断、送信再開、送信終了要求の受信、およびマルチメディアデータの送信である。
 図17は、ネットワークライブラリ405eの内部構成の一例を表すブロック図である。ネットワークライブラリ405eは、制御部1701、アクション要求受信応答部1702、コンテンツ管理部1703、データ要求受信送信部1704、および再開位置管理部1705を含む。なお、ネットワークライブラリ405eは、IPネットワークに関連する他の機能を含んでも良い。 
 制御部1701は、データ送信装置101のサーバ機能の起動や停止、クライアントからの要求の処理を提供するものである。制御部1701は、ダウンロードしたJavaアプリケーション、すなわちサーバアプリケーションに対してJava APIを提供し、サーバアプリケーションがこのAPIを呼び出すことで、サーバ機能の起動および停止が行える。制御部1701は、必要に応じて、コンテンツ管理部1703および再開位置管理部1705などネットワークライブラリ405e内のライブラリを利用して処理を行う。
 また、制御部1701は、サーバ機能が実行されている間、データ受信装置102及びデータ受信装置103からの要求を受信すると、それに対応する処理を行う。
 アクション要求受信応答部1702は、OS401のライブラリ401bの中のNET401b4を通じてネットワーク部211を制御し、指定されたネットワーク104に接続されているデータ受信装置から、UPnP AV CDSサービスで提供するCDS:BrowseやCDS:UpdateObjectの要求を受信する。アクション要求受信応答部1702は、CDS:Browseを受信した際には、コンテンツ管理部1703へ受信した情報を通知する。また、再開位置の更新を行うCDS:UpdateObjectを受信した際には、再開位置管理部1705へ通知し、再開位置情報テーブル1332(またはコンテンツ属性情報)を更新する。そして、受信した要求に対応する処理を、コンテンツ管理部1703や再開位置管理部1705を利用して実施し、応答メッセージの生成および送信を行う。
 コンテンツ管理部1703は、第2メモリ203に蓄積されたコンテンツの管理、および、サーバアプリケーションからの要求に応じて図21に示すようなコンテントディレクトリ2101の生成および管理、各オブジェクトに付与されたコンテンツ属性情報の管理を行う。
 UPnP AV CDS仕様によりルートコンテナ2102はサーバに1個のため、制御部1701によってサーバ機能の起動が行われた際に、コンテンツ管理部1703は、ルートコンテナ2102を生成する。更に、コンテンツ管理部1703は、サーバアプリケーションにJava APIを提供する。なお、コンテンツを追加するJava APIについては、説明を省略する。また、コンテンツ及びコンテンツ属性情報を取得するAPIは後述するデータ受信装置のJava APIを同様に利用することで取得できるため、ここでは説明を省略する。そして、サーバアプリケーションは提供されたJava APIを用いてルートコンテナ2102以下へオブジェクトの追加をコンテンツ管理部1703へ要求し、この要求に従いコンテンツ管理部1703は、コンテントディレクトリ2101を生成する。ここで、コンテンツ管理部1703がオブジェクトを追加する時、追加されたオブジェクトが保持するコンテンツ属性情報のうち再開位置を示すocap:PresentaionPointに初期値「-1」を設定する。
 なお、ここではサーバアプリケーションの指示により、コンテントディレクトリ2101の生成を行う方法を説明したが、コンテンツ管理部1703がサーバアプリケーションを介さずにコンテントディレクトリ2101を生成してもよい。
 また、コンテンツ管理部1703は、アクション要求受信応答部1702からCDS:Browseアクションを受けると、CDS:Browseアクションで指定されたオブジェクトのコンテンツ識別子とCDS:BrowseのBrowseFlagを取得する。BrowseFlagは、「指定したオブジェクトに関する情報の取得要求」か「指定したコンテナの子オブジェクトの情報の取得要求」のいずれかを示す。そして、取得したコンテンツ識別子を持つオブジェクトの情報をIO405gに依頼して読み出す。
 Browseアクションが、指定したオブジェクトの情報を要求するものであれば、ネットワークライブラリ405eは、読み出したオブジェクトの情報から、UPnP AV CDSおよびDLNAで定義された情報を抽出し、UPnP AV CDSおよびDLNAに定義されたフォーマットに変換して、要求元のクライアントに送信し、処理を終了する。
 一方、Browseアクションが、指定したコンテナの子オブジェクトの情報を要求するものであれば、コンテンツ管理部1703は、属性情報テーブル1321の各コンテンツ属性情報を参照し、コンテンツ属性情報のParentIDとCDS:Browseで指定されたコンテナのコンテンツ識別子を比較し、一致するオブジェクトの集合を取得する。このとき、一致するオブジェクトの集合に含まれる各オブジェクトについては、コンテンツ属性情報をUPnP AV CDS定義のフォーマットに変換し、CDS:Browseアクションの応答結果として、アクション要求受信応答部1702へ通知する。
 図24および図25は、CDS:Browseアクションの応答の一部を抜粋した例を示す図である。データ要求受信送信部1704は、OS401のライブラリ401bの中のNET401b4を通じてネットワーク部211を制御し、指定されたネットワーク104に接続されているデータ受信装置から、第2メモリ203に蓄積されたマルチメディアデータの送信要求を受信する。そして、受信した要求に従いマルチメディアデータを該要求元のデータ受信装置へ送信する。
 データ要求受信送信部1704は、要求元のデータ受信装置から送信されてきた要求メッセージを解析し、要求されたコンテンツのURIを取得する。続いて、IO405gに依頼してURIテーブル1331を読み出す。読み出したURIテーブル1331と、要求メッセージから取得したURIから、要求されているコンテンツの識別子を得る。例えば、図16に示したURIテーブルで、要求されたURIが「http://192.168.0.3/AVData/0001.m2ts」だった場合、行1611の内容から、該コンテンツの識別子「ContentID00」が得られる。
 続いて、データ要求受信送信部1704は、IO405gに依頼して、取得したファイル名のコンテンツ属性情報(ファイル)を読み出す。読み出したコンテンツ属性情報の内容のうち、FileNameから該コンテンツのマルチメディアデータを格納したファイル名を取得する。例えば、図14に示したコンテンツ属性情報の場合、マルチメディアデータのファイル名は「0001.m2ts」であることがわかる。
 続いて、データ要求受信送信部1704は、IO405gに依頼して、取得したファイル名のマルチメディアデータの存在を確認する。存在しない場合には、エラーメッセージを生成して、要求元のデータ受信装置に送信し、処理を終了する。存在する場合には、該コンテンツ属性情報や、IO405gに依頼することにより得られるファイルサイズなどの情報を集めて返信メッセージのヘッダを生成し、要求元のデータ受信装置へ送信する。続いて、IO405gに依頼して、該マルチメディアデータを順次読み出しながら、読み出したデータを該要求元のデータ受信装置へ送信する。このとき、該要求元のデータ受信装置の要求に、TimeSeekRange.dlna.orgヘッダなどを用いて取得するデータの範囲が設定されている場合は、指定された位置からマルチメディアデータを送信する。
 再開位置管理部1705は、コンテンツ属性情報のocap:PresentationPoint(再開位置情報)の追加、変更、削除といった処理(コンテンツ属性情報の更新)を行う。再開位置管理部1705は、アクション要求受信応答部1702からコンテンツ識別子と更新前のocap:PresentationPointと更新後のocap:PresentationPointを受け取る。なお、アクション要求受信応答部1702から受信した情報に再開位置識別子が設定されていない場合は、再開位置識別子を設定する。再開位置識別子の一例として、CDS:UpdateObjectの要求を送信したデータ受信装置の情報(FriendlyName, UUID, IP address, MAC addressなどといったデータ受信装置固有の情報や、organization_id, application_idなどといったデータ受信装置上で動作するクライアントアプリケーション固有の情報など)やCDS:UpdateObjectを受信した日時がある。
 再開位置管理部1705は、まず再開位置情報テーブル1332を取得し、アクション要求受信応答部1702から受信したコンテンツ識別子に関連する再開位置情報を取得する。そして、更新前のコンテンツ属性情報に再開位置識別子が設定されている場合は、関連する再開位置情報から、一致する再開位置識別子を持つ再開位置を更新する。
 このように、再開位置管理部1705は、コンテンツ属性情報を更新することで、再開位置管理部1705が管理する再開位置情報テーブル1332を更新することができる。
 ここで、更新前の再開位置が初期値であったコンテンツに対し、更新後のコンテンツ属性情報に新たに再開位置を追加する一例を示す。
・再開位置の追加
 図18は、初期状態の再開位置情報テーブル1332を示す図である。図18の列1801は、コンテンツ識別子を、1802は再開位置を、1803は再開位置識別子を含み、行1811-1813の各行は、第2メモリ203に録画されたマルチメディアデータの再開位置情報の属性を示す。ここで、図18では、再開位置情報テーブル1332が初期状態であるため、再開位置1802には全て「-1」が設定されており、再開位置識別子1803は未設定である。
 ここで、再開位置管理部1705が、コンテンツ識別子「ContentID00」に対応付けられた、再開位置が未設定のために初期値「-1」に設定されている更新前の再開位置情報を、更新後の再開位置情報として、再開位置が「00:30:00」であり、再開位置識別子が「LivingRoom」である再開位置情報に更新する場合の例を示す。
 再開位置管理部1705は、図18の再開位置情報テーブルを取得し、アクション要求受信応答部1702から指定されたコンテンツ識別子「ContentID00」を検索する。このとき、再開位置管理部1705は、1801列のコンテンツ識別子が等しい1811行を取得し、列1802と列1803へ更新後の再開位置情報を設定する。ここでは、列1802へ「00:30:00」を、列1803へ「LivingRoom」を設定する(図19の行1911)
 また、削除や変更も同様に、更新前のコンテンツ属性情報に更新前の再開位置と再開位置識別子を設定し、更新後のコンテンツ属性情報に変更したい再開位置と再開位置識別子を設定することで実現できる。
 なお、このような方法では、ネットワーク上に存在する全てのダウンロードされたアプリケーション(以下、ダウンロードアプリケーションという)が再開位置情報テーブル1332を更新することが可能である。しかし、全てのデータ受信装置上で動作するダウンロードアプリケーションが常に同じダウンロードアプリケーションとは限らない。そのため、優先度の高いアプリケーションが設定した再開位置や再開位置識別子については、他のアプリケーションによる更新を制限するという要望が想定できる。
 そこで、データ受信装置102及びデータ受信装置103がCDS:UpdateObjectを送信する際には、アプリケーション情報を再開位置識別子に追加することで、再開位置管理部1705は、アプリケーション情報が一致しないものからのリクエストに対して再開位置情報テーブル1332の更新をしないといった制御を行うことができる。
 図20は、アプリケーション識別子を保持する再開位置情報テーブル1332の例を示す図である。列2004~2006にアプリケーション情報を保持する。ここでは、2004列にOrganization_idを、2005列にApplication_idを、2006列にGroup_identifierを設定するが、使用するアプリケーション情報は、これらの一部であっても良い。また、Application_nameなど他の表現方法であっても良い。
 再開位置管理部1705は、アクション要求受信応答部1702からの再開位置情報テーブル更新要求を受けた際に、更新を要求したデータ受信装置上で動作するアプリケーション情報も一緒に受け取り、このアプリケーション情報が再開位置情報テーブル1332に記録されている該コンテンツの再開位置を設定したデータ受信装置のアプリケーション情報と異なる場合には、再開位置及び再開位置識別子を更新せずに、アクション要求受信応答部1702へエラーを返すことで、再開位置の更新を行うアプリケーションを制限することが可能となる。
 なお、図18、図19、図20は、第2メモリ203に記憶された再開位置情報テーブル1332の一例として示したが、再開位置管理部1705が再開位置と再開位置識別子を管理できる方法であれば別の形式であっても良い。
 次に、データ受信装置102およびデータ受信装置103について説明する。
 図26は、本実施の形態におけるデータ受信装置102およびデータ受信装置103の構成要素の関係を示したブロック図である。データ受信装置102および103のそれぞれは、入力部2601、第1メモリ2602、第2メモリ2603、多重分離手段2604、TSデコーダ2605、映像出力部2606、音声出力部2607、ネットワーク部2608、およびCPU2609で構成される。
 入力部2601、第1メモリ2602、および第2メモリ2603は、上記した本実施の形態におけるデータ送信装置101の入力部201、第1メモリ202、および第2メモリ203と同様のものである。なお、データ受信装置102およびデータ受信装置103は、第2メモリ2603に、データ送信装置101から受信したコンテンツ一覧やEPGデータなどの、マルチメディアデータの識別子、タイトル、放送日時、放送チャンネルなど番組情報を蓄積する。
 多重分離手段2604は、CPU2609からMPEGトランスポートストリームを受け取り、CPU2609から指定された情報を抽出し、CPU2609に引き渡す。また、MPEGトランスポートストリームをそのままTSデコーダ2605に引き渡す。
 TSデコーダ2605は、CPU2609から、音声データまたは映像データの識別子を受け取る。さらに、多重分離手段2604から受け取ったストリームから、受け取った音声データまたは映像データの識別子に対応するデータを抽出する。抽出した映像データを映像出力部2606に、音声データを音声出力部2607に、それぞれ引き渡す。
 映像出力部2606および音声出力部2607は、上記した本実施の形態におけるデータ送信装置101の映像出力部208および音声出力部209と同様のものである。
 ネットワーク部2608は、ネットワークインタフェースを含み、CPU2609から受け取ったデータを、ネットワークインタフェースが接続されたネットワークの物理メディアに応じた信号に変換して出力する。また、ネットワークインタフェースから信号を受信し、IPネットワークで規定されたパケットに変換して、CPU2609へ引き渡す。
 CPU2609は、第2メモリ2603が記憶するプログラムを実行することで、多重分離手段2604、TSデコーダ2605、およびネットワーク部2608を制御する。
 図27は、第2メモリ2603に記憶され、CPU2609に実行されるプログラムの一例を示す構成図である。
 プログラム2700は、複数のサブプログラムで構成され、具体的にはOS2701、JavaVM2702、サービスマネージャ2703、およびJavaライブラリ2704で構成される。
 OS2701は、データ受信装置102およびデータ受信装置103の電源が投入されると、CPU2609が起動するサブプログラムである。OSは、オペレーティングシステムの略であり、Linux等が一例である。OS2701は、他のサブプログラムを並行して実行するカーネル2701a及びライブラリ2701bで構成される公知の技術の総称であり、詳細な説明は省略する。本実施の形態においては、OS2701のカーネル2701aは、JavaVM2702をサブプログラムとして実行する。また、ライブラリ2701bは、これらサブプログラムに対して、データ受信装置102およびデータ受信装置103が保持する構成要素を制御するための複数の機能を提供する。
 本実施の形態では、ライブラリ2701bは機能の一例として、限定解除2701b1、AV再生2702b2、およびNET2701b3を含む。
 限定解除2701b1は、他のサブプログラムやJavaライブラリ2704のCP2704cから情報を受け取り、ネットワークから受信した暗号化データを復号したり、AV再生2701b2を有効にして、ネットワークから受信したマルチメディアデータの再生を許可したりするものである。
 AV再生2702b2は、他のサブプログラムやJavaライブラリ2704のJMF2704aから、音声のパケットIDと映像のパケットIDを受け取る。受け取った音声のパケットIDと映像のパケットIDを、TSデコーダ2605に与える。この結果、TSデコーダ2605は与えられたパケットIDに基づいて、フィルタリングを行い、映像・音声の再生を実現する。
 NET2701b3は、他のサブプログラムやJavaライブラリ2704のネットワークライブラリ2704dから受け取ったデータを、IPネットワークで規定されるアプリケーション層より下のプロトコルのパケットを作成する。アプリケーション層より下のプロトコルとは、例えばTCPパケット、UDPパケット、またはIPパケットなどである。これをネットワーク部2608に引き渡すことで、ネットワーク104を介して他の機器にメッセージおよびデータを送信する。また、NET2701b3は、ネットワーク104を介して他の機器からのメッセージを受信したときに、他のサブプログラムやJavaライブラリ2704のネットワークライブラリ2704dに、そのメッセージをアプリケーション層のプロトコルのパケットに変換して引き渡す。アプリケーション層のプロトコルとは、例えば、HTTP、RTSPやRTPなどである。
 JavaVM2702は、上記した本実施の形態におけるデータ送信装置101のJavaVM403と同様のものである。
 サービスマネージャ2703は、上記した本実施の形態におけるデータ送信装置101のサービスマネージャ404と、以下の相違点を除いて同様のものである。サービスマネージャ404はEPG402の再生部402bよりチャンネルの識別子を受け取り、その識別子をTuner405cに引き渡してチューニングさせ、さらにCA405dに依頼してデスクランブルを行い、JMF405aにチャンネルの識別子を与えて映像・音声の再生を依頼するものであった。一方、サービスマネージャ2703は、Javaライブラリ2704の中にあるList2704iからコンテンツ識別子を受け取り、ネットワークライブラリ2704dにコンテンツ識別子およびそれを蓄積している装置などの情報を引き渡して、該装置からストリームを受信し、続いて、Javaライブラリ2704の中にあるJMF2704aにコンテンツ識別子を与えることで、映像・音声の再生を依頼するものである。List2704iについては、後述する。
 サービスマネージャ2703は、Javaライブラリ2704の中にあるネットワークライブラリ2704dに、コンテンツ識別子とデータ送信装置101のIPアドレスなどの情報、該コンテンツにアクセスするためのURIなどの情報を与えて、データ送信装置101へのマルチメディアデータ送信要求発行と該マルチメディアデータの受信を依頼し、さらに、ネットワークライブラリ2704dに、データ送信装置101から送信されたマルチメディアデータの受信を依頼する。ネットワークライブラリ2704dは、依頼を受けると、データ送信装置101と接続して、マルチメディアデータの送信要求を発行する。そして、ネットワークライブラリ2704dは、データ送信装置101から送信されたデータをCPU2609へ引き渡す。これにより、受信したマルチメディアデータを多重分離手段2604に引き渡すことが可能となり、該マルチメディアデータの再生が行える。
 Javaライブラリ2704は、第2メモリ2603に格納されている複数のJavaライブラリの集合である。本実施の形態では、Javaライブラリ2704は、JMF2704a、AM2704b、CP2704c、ネットワークライブラリ2704d、再生Lib2704e、およびList2704i等を含んでいる。
 JMF2704a、AM2704b、再生Lib2704e、IO2704f、AWT2704g、およびSI2704hは、それぞれ、上記した本実施の形態におけるデータ送信装置101のJavaライブラリ405の中のJMF405a、AM405b、再生Lib405f、IO405g、AWT405h、およびSI405iと同様のものである。
 CP2704cは、ネットワーク104経由で送信されてきたマルチメディアデータのコピー制御および課金など、該マルチメディアデータの権利処理を管理するものである。コピー制御は、送信されてきたトランスポートストリームのセクション情報に含まれているコピー制御情報を参照して、必要であれば書き換えを行う。また、課金などは、ネットワークライブラリ2704dを通して、データ送信装置101と通信することによって行う。
 List2704iは、データ送信装置101におけるEPGやデータ送信装置101が蓄積しているマルチメディアコンテンツの一覧を表示し、入力部2601が受け付けたユーザ操作によって、一覧からひとつのマルチメディアコンテンツを選択し、サービスマネージャ2703に再生を依頼するものである。このとき、データ送信装置101の情報もサービスマネージャ2703に引き渡す。また、データ送信装置101におけるEPGおよびデータ送信装置に蓄積されたコンテンツの一覧は、ネットワークライブラリ2704dを通して、取得することができる。これらの情報は、UPnP AVに定義された方法によって実現できるため、詳細説明は省略する。
 ネットワークライブラリ2704dは、OS2701のNET2701b3を通して、ネットワーク104に接続されたデータ送信装置101と通信するものである。データ送信装置101との通信は、マルチメディアデータの一覧送受信、およびマルチメディアデータの送信要求発行と該マルチメディアデータの受信である。
 図28は、ネットワークライブラリ2704dの内部構成の一例を表すブロック図である。ネットワークライブラリ2704dは、制御部2801、サーバ管理部2802、アクション送受信部2803、コンテンツ管理部2804、再生位置決定部2805、およびデータ送受信部2806を含む。なお、ネットワークライブラリ2704dは、IPネットワークに関連する他の機能を含んでも良い。
 制御部2801は、ダウンロードしたJavaアプリケーションであるクライアントアプリケーションに対してJava APIを提供し、クライアントアプリケーションがこのAPIを呼び出すことで、サーバや提供コンテンツの検索、選択したコンテンツの再生など、クライアントとしての機能を実現するものである。制御部2801は、サーバ管理部2802、アクション送受信部2803、コンテンツ管理部2804、再生位置決定部2805、データ送受信部2806や、他のJavaライブラリ2704およびOS2701のライブラリ2701bを利用して、これらの処理を行う。
 サーバ管理部2802は、UPnP DAの機能により発見した、データ送信装置101のようなネットワーク104上に存在するサーバの情報を管理し、UPnP AV CDSのような機能により該サーバにアクセスするものである。サーバやサーバが提供するサービスの発見とその情報取得については、本発明とは無関係のため、詳細説明は省略する。サーバ管理部2802は、クライアントアプリケーションにJava APIを提供する。Java APIについては後述する。
 アクション送受信部2803は、OS2701のライブラリ2701bのNET2701b3を通じてネットワーク部2608を制御し、指定されたネットワーク104に接続されている外部装置との接続と、既に述べたようなUPnP AV CDSのCDS:BrowseやCDS:UpdateObjectをデータ送信装置101へ送信し、その応答を受信する処理を行う。
 コンテンツ管理部2804は、既に述べたようなUPnP AV CDSの機能によって取得した、サーバが提供するコンテンツの情報を管理するものである。そのため、コンテンツ管理部2804は、取得したサーバが提供するコンテンツの情報(コンテンツ属性情報)から、コンテンツ毎に再開位置と再開位置識別子の組を管理する。例えば、図25のようなBrowse結果を受信した場合には、コンテンツ管理部2804は、該コンテンツに関連して再開位置情報テーブルを生成しコンテンツ毎に管理する。
 図29は、コンテンツ管理部2804によって生成される再開位置情報テーブルの一例を示す図である。図29において、列2901は再開位置を示し、列2902は再開位置識別子を示す。コンテンツ管理部2804はクライアントアプリケーションにJava APIを提供する。Java APIについては後述する。
 再生位置決定部2805は、コンテンツ管理部2804が保持するコンテンツ属性情報(または再開位置情報テーブル)を参照し、再開位置から現在利用する再生位置を決定する。なお、再生位置決定部2805は、コンテンツの再生要求を受けた際に、コンテンツ管理部2804から再開位置情報テーブルを取得し、該再開位置情報テーブルの情報をユーザへ提示し、ユーザが選択することで、再生位置を設定する構成であっても良い。
 データ送受信部2806は、OS2701のライブラリ2701bのNET2701b3を通じてネットワーク部2608を制御し、指定されたネットワーク104に接続されている外部装置との接続と、再生位置決定部2805が決定した再生位置からのデータ取得要求の送信と受信を行う。そして、受信したデータをTSデコーダ2605などへ送信することで、再生位置決定部2805が決定した再生位置からの再生を行う。
 次に、サーバ管理部2802がクライアントアプリケーションに提供するJava APIについて説明する。
 図30は、サーバ管理部2802が提供するJava APIの一例を示す図である。ただし、本発明に関連するもののみを例示しており、他のAPIを備えてもよい。
 図30の(1)に示すメソッドgetDeviceは、発見したネットワーク104上にあるデバイス情報を返すものである。一般的なUPnP規格では、サーバ機能をもつデバイスのみが、ネットワーク104に接続された機器へ、該サーバ機能をもつデバイス自身の機器情報を送信する。そのため、ここではサーバ機能をもつデバイスの機器情報のみが取得できる。しかしながら、本発明ではアプリケーションが自端末の属性値であるFriendly Nameなどを設定することもできる。そこでデータ受信装置102および103は、ネットワーク104に接続されたサーバ機能を持つデバイスの機器情報に、該デバイス自身のデバイス情報を加えたデバイス情報をクライアントアプリケーションへ提供することができる。戻り値は後述するDeviceインタフェースを実装したクラスのインスタンスの配列である。
 なお、ネットワーク104に接続されたクライアント機器の情報を取得できる場合は、戻り値であるデバイス情報の配列に、該クライアント機器を含んでもよい。これにより、クライアントアプリケーションは、ネットワークに接続された他のデータ受信装置の情報を知ることができる。こうすることで、例えば再開位置識別子として、次に再生するデータ受信装置103の情報を設定することなどもできる。
 図30の(2)に示すインタフェースDeviceは、ネットワーク上のデバイスを定義したものであり、図31に本発明に関連するAPIを示す。
 図30の(3)に示すインタフェースContentServerは、マルチメディアサーバへアクセスするためのインタフェースを定義したものであり、図32に本発明に関連するAPIを示す。
 図31は、Deviceインタフェースの一例を示す図である。図31において、メソッドgetContentServerは、該DeviceがサポートするContentServerを取得するものである。存在しない場合はNULLを返す。次にメソッドisLocalは、該Deviceが自端末のデバイス情報を示す場合はTrueを返し、ネットワーク104で接続された装置のデバイス情報を示す場合はFalseを返す。また、メソッドsetDevicePropertyは、該Deviceにデバイス情報であるプロパティの値を設定するためのものである。引数KeyはDeviceに設定されるプロパティ名を表し、引数Valueは設定する値を表す。これにより、アプリケーションが理解しやすいデバイスの名前など、該Deviceの属性情報を設定することが可能となり、データ受信装置のメーカが異なった場合でも、統一的な方針により属性情報を設定することが可能になる。
 一例としては、引数Keyに「PROP_FRIENDLY_NAME」を指定し、引数Valueに「LivingRoom」といった設置場所を指定することによって、該デバイスのFriendly NameをLivingRoomに設定することができる。これによりクライアントアプリケーションは、データ受信装置のメーカや機種に依存せず、常にFriendly Nameには設置場所を設定できることになる。なお、ここではメソッドsetDevicePropertyはKeyとValueを引数とするAPIとしたが、setFriendlyName(String Value)のように、設定する属性情報ごとにメソッドを用意する方法でもよい。
 また、メソッドsetDevicePropertyは、isLocalがTrueの場合のみ設定することができ、isLocalがFalseの場合は設定できない。そのため、メソッドsetDevicePropertyが設定できない場合には、例外(Exception)を投げて設定できないことを通知してもよいし、返り値をBooleanなど処理の成否を表現できるものに変更し、結果を戻り値で通知する方法であってもよい。
 図32は、ContentServerインタフェースの一例を示す図である。これは、本発明に関連するインタフェースのみを定義している。図32において、メソッドgetRootContainerは、該マルチメディアサーバのルートコンテナを取得するものである。Containerインタフェースは後述する。メソッドgetRootContainerが呼び出されると、ネットワークライブラリ2704dは、アクション送受信部2803に依頼して、該マルチメディアサーバに対する、ルートコンテナの情報を要求するBrowseアクションメッセージを生成し、該マルチメディアサーバへ送信する。Browseアクションは、UPnP AV CDS規格であるContentDirectory:1 Service Template Version 1.01 For UPnP(TM) Version 1.0, June 25, 2002[非特許文献1]の2.7.4に定義されている。詳細については、非特許文献1を参照されたい。続いて、ネットワークライブラリ2704dは、アクション送受信部2803に依頼して該マルチメディアサーバからレスポンスメッセージを受信し、レスポンスメッセージを解釈させて、ルートコンテナの情報を取得する。続いて、ネットワークライブラリ2704dは、ルートコンテナの情報をコンテンツ管理部2804へ引き渡し、抽出した属性情報を該ルートコンテナの情報として含むContainerインタフェースを実装したクラスのインスタンスを生成する。そして、ネットワークライブラリ2704dは、生成したインスタンスを戻り値として返す。レスポンスメッセージがエラーであった場合は、ネットワークライブラリ2704dはnullを返す。
 図32のメソッドrequestBrowseは、該マルチメディアサーバに、引数で与えられた条件のBrowseアクションを発行して、該マルチメディアサーバから情報を取得するものである。戻り値は受信したオブジェクトの情報を含む、CDSObjectインタフェースを実装したクラスのインスタンスの配列である。CDSObjectインタフェースについては、後述する。本メソッドの引数は、UPnP AV CDSのBrowseアクションに使用するものと同じ形式のものである。本メソッドの引数objectIDはBrowseアクションの引数ObjectIDに対応する。以下、引数flagはBrowseFlagに、引数filterはFilterに、引数startIndexはStartIndexに、引数requestedCountはRequestedCountに、sortCriteriaはSortCriteriaに、それぞれ対応する。詳細は、非特許文献1を参照されたい。
 本メソッドが呼び出されると、ネットワークライブラリ2704dは、アクション送受信部2803に、引数objectID、flag、filter、startIndex、requestCount、およびsortCriteriaを引き渡して、Browseアクションのメッセージを生成し、メッセージを該マルチメディアサーバへ送信する。続いて、ネットワークライブラリ2704dは、アクション送受信部2803に依頼して該マルチメディアサーバからレスポンスメッセージを受信し、内容を解釈させて、引数で指定したオブジェクトの情報を取得する。続いて、ネットワークライブラリ2704dは、取得したオブジェクト情報をコンテンツ管理部2804へ引き渡し、該オブジェクトそれぞれに対して、抽出した情報を含むCDSObjectインタフェースを実装したクラスのインスタンスを、オブジェクトごとに生成し、それらを配列にまとめ、戻り値として返す。レスポンスメッセージがエラーであった場合は、ネットワークライブラリ2704dはnullを返す。
 次に、コンテンツ管理部2804がクライアントアプリケーションに提供するJava APIについて説明する。
 図33は、コンテンツ管理部2804が提供するJava APIの一例を示す図である。ただし、本発明に関連するもののみを例示しており、コンテンツ管理部2804は他のAPIを備えていても良い。
 図33の(1)に示すインタフェースCDSObjectは、コンテナおよびアイテムの上位概念であるオブジェクトにアクセスするためのインタフェースを定義したものである。ネットワークライブラリ2704dでは、本インタフェースを実装したクラスでUPnP AV CDSで定義されたオブジェクトを表す。
 図34は、CDSObjectの定義を示す図である。図34において、メソッドgetIDは、該オブジェクトのIDを文字列で返すものである。また、メソッドgetParentIDは、該オブジェクトの親コンテナのIDを文字列で返すものである。該オブジェクトがルートコンテナの場合、もしくは、該オブジェクトが親コンテナを持たない場合にはnullを返す。また、メソッドgetClassは、UPnP AV CDSで定義された該オブジェクトのクラスを文字列で返す。オブジェクトのクラスとは、“object.container”、“object.item”などである。また、メソッドgetMetadataは、該オブジェクトに付与された属性情報(コンテンツ属性情報)を、後述のMetadataクラスのインスタンスとして返すものである。本メソッドで、データ受信装置102及び103上で動作するクライアントアプリケーションは、該オブジェクトの再開位置及び再開位置識別子を取得することができる。
 図33の(2)に示すインタフェースContainerは、CDSObjectインターフェースの派生インターフェースであり、コンテナにアクセスするためのインタフェースを定義したものである。
 図35は、Containerの定義を示す図である。メソッドgetChildCountは、該コンテナがその時点で持つ子オブジェクトの数を返す。メソッドgetChildrenは、該コンテナの子オブジェクトすべてを返すものである。戻り値は、CDSObjectを実装したクラスのインスタンスの配列である。処理に失敗すればnullを返す。メソッドgetChildは、該コンテナの子オブジェクトのうち、IDが引数objectIDで与えられたものと同じものを返すものであり、そのようなオブジェクトがあればそのインスタンスを返す。また、該コンテナにそのような子オブジェクトが無ければnullを返す。
 図33の(3)に示すインタフェースContentItemは、CDSObjectインタフェースの派生インタフェースであり、アイテムにアクセスするためのインタフェースを定義したものである。
 図36は、ContentItemの定義を示す図である。メソッドrequestSetMediaTimeは、データ送信装置101が管理する再開位置及び再開位置識別子へ再開位置を設定するものである。
 なお、クライアントアプリケーションは、再開位置を追加したい場合は、再開位置識別子を示す引数Identifierにクライアントアプリケーションが設定したい新たな識別子を設定する。また、クライアントアプリケーションが、再開位置を更新したい場合は、後述のMetadataインタフェースのgetMetadataメソッドで取得した再開位置識別子を引数Identifierに設定し、更新したい再開位置を引数Timeに設定する。
 ここで、引数Timeに「-1」を設定することで、再開位置識別子で設定した再開位置の削除を要求することができる。ここで、メソッドrequestSetMediaTimeが呼ばれた際に、コンテンツ管理部2804は更新後の再開位置情報テーブルを作成する。そして、アクション送受信部2803へ更新前の再開位置情報テーブルと更新後の再開位置情報テーブルを引き渡すと共にCDS:UpdateObjectの送信依頼を行う。このとき、更新後の再開位置情報テーブルの作成方法の一例を図39へ示す。
 図39は、更新後の再開位置情報テーブルの作成方法の一例を示す図である。
・削除の例
 ここで、更新前の再開位置情報テーブルを図29とし、メソッドrequestSetMediaTimeの引数Timeが「-1」であり、引数Identifierが「LivingRoom」であるとする。
 コンテンツ管理部2804は、更新後の再開位置情報テーブルを作成するため、図29の更新前の再開位置情報テーブルが最後まで読み込まれたか判断する(S39001)。最後まで読み込まれていない場合は、再開位置「00:30:00」と再開位置識別子「LivingRoom」の組を取得する(S39002)。次に再開位置識別子「LivingRoom」と引数Identifier「LivingRoom」を比較し(S39003)、一致することを確認する。次に引数Timeが「-1」と一致するため(S39005)、読み出した再開位置「00:30:00」と再開位置識別子「LivingRoom」は更新後の再開位置情報テーブルへコピーせず、処理完了フラグをセットする(S39006)。コンテンツ管理部2804は、次の再開位置と再開位置識別子を確認、取得し(S39001、S39002)、再開位置識別子と引数Identifierが異なるため(S39003)、取得した再開位置と再開位置識別子を更新後の再開位置情報テーブルへコピーし、処理完了フラグをセットする(S39004)。再開位置と再開位置識別子の読み込みが全て完了すると、処理完了フラグがセットされているか確認(S39008)し、フラグがセットされているため、続いて装置設定識別子を設定するか否かを判断する(S39010)。装置設定識別子を設定する場合は、装置設定識別子を取得して追加する(S39011)。ここで装置設定識別子の具体例は、アプリケーション識別子や、前述したDeviceインタフェースに対してクライアントアプリケーションが設定したFriendly Nameである。なお、アプリケーション識別子は、AM2704bがアプリケーションを起動する際に、起動するアプリケーションを判断するために用いるアプリケーションの識別子で、Application_id、Organization_id、またはGroup_identifierなどがその例である。
 装置設定識別子を設定するか否かは、あらかじめデータ送信装置101とデータ受信装置102及びデータ受信装置103との間で決定しておくことができ、S39012の点線で示した装置設定識別子の設定は必ずしも実施する必要はない。
・更新の例
 ここで、更新前の再開位置情報テーブルを図29とし、メソッドrequestSetMediaTimeの引数Timeが「00:40:00」であり、引数Identifierが「LivingRoom」であるとする。更新についても再開位置識別子と引数Identifierの比較(S39003)までは、削除の場合と同様である。ここでは、再開位置識別子と引数Identifierが同じため、引数Timeを確認(S39005)し、引数Timeが「-1」でないことを確認すると、再開位置識別子で指定された再開位置を引数Time「00:40:00」へ更新した、再開位置「00:40:00」と再開位置識別子「LivingRoom」の組を更新後再開位置情報テーブルへ追加する(S39007)。以降の処理は削除の例と同じため、省略する。
・追加の例
 ここで、更新前の再開位置情報テーブルを図29とし、メソッドrequestSetMediaTimeの引数Timeが「00:40:00」であり、引数Identifierが「Ken’sRoom」であるとする。追加では、更新前の再開位置情報テーブルに引数Identifierが存在しないため、S39003とS39004を繰り返すことで、更新前の再開位置情報テーブルを更新後の再開位置情報テーブルへコピーする。そして、全ての再開位置と再開位置情報を処理した後、処理完了フラグをセットされているか確認し(S39008)、フラグがセットされていない場合は、引数Timeと引数Identifierを更新後の再開位置情報テーブルへ追加する。セットされている場合は、上述と同じ処理を行うため、説明を省略する。
 なお、ここでrequestSetMediaTimeは、再開位置を示す引数Timeと再開位置識別子を示す引数Identifierの二つの引数をとる方法を説明したが、requestSetMediaTimeの引数がTimeのみであってもよい。このとき、コンテンツ管理部2804は、コンテンツの再開要求が行われた際の再開位置から、図29の再開位置情報テーブルを用いて、再開位置識別子Identifierを取得する。そして、requestSetMediaTimeによって再開位置の更新が指定された際に、記録しておいた再開位置識別子Identifierに対する再開位置と判断し、図39の処理に従い、更新後の再開位置情報テーブルを生成してもよい。
 なお、requestSetMediaTimeの第三引数であるNetActionHandlerは、データ送信装置101に再開位置情報の更新依頼の結果を受けるHandlerをアプリケーションが設定するために指定される。
 図33の(4)に示すインタフェースMetadataは、属性情報を保持するためのクラスである。
 図37は、Metadataの定義を示す図である。図37において、メソッドgetKeysは、該Metadataインスタンスに設定されている属性情報の名前(key)のすべてを文字列の配列で返す。なお、Metadataインスタンスが階層構造になっている場合、すなわち、あるkeyに対するvalueがMetadataインスタンスであるものを含む場合では、そのvalueに設定されたMetadataインスタンスが含むkeyは戻り値に含めないこととする。すなわち、該Metadataインスタンスが持つkeyのみの集合を返す。
 メソッドgetMetadataは、属性情報の名前を引数keyで与えて、その属性情報の値を返すものである。よって引数Keyに再開位置と再開位置識別子の属性情報の名前(例:ocap:PresentationPoint)を指定し、メソッドgetMetadataをよびだすことで、再開位置と再開位置識別子が取得することができる。該Metadataインスタンスが、引数で与えられた名前の属性情報を持っていない場合はnullを返す。
 図33の(5)に示すインタフェースNetActionHandlerは、アプリケーションへ非同期処理の結果を通知するために用いられる。
 図38は、NetActionHandlerインタフェースを示す図である。ここでは、requestSetMediaTimeで指定した再開位置変更の要求がデータ送信装置101上で成功したか否かが、Notifyメソッドを呼ぶことでアプリケーションへ通知される。
(変形例)
 本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記実施の形態に限定されるものではない。以下のような場合も、本発明に含まれる。
(1) 上記実施の形態においては、データ送信装置101は、デジタル放送を受信するSTBとしたが、それに限るものではない。チューナを持たずに、ネットワークからコンテンツを受信して蓄積する構成であっても良い。この場合の構成は図27と同様のものとなる。また、ネットワーク以外の手段によってデータを蓄積する構成であっても良い。
(2) 上記実施の形態において、ContentItemインタフェースのメソッドrequestSetMediaTimeの引数は、再開位置を表すtimeと再開位置識別子を表すIdentifierとしたが、引数として文字列を取ることとし、この文字列にCSVリストを用いて、再開位置と再開位置識別子を指定しても良い。
(3) 上記実施の形態においては、データ受信装置から再開位置の更新要求を受信すると、データ送信装置101は、それに応じて保存している再開位置を更新するとしたが、データ送信装置101は、サーバアプリケーションに対して再開位置更新の可否を問い合せ、サーバアプリケーションから許可された場合に、再開位置を更新しても良い。また、データ送信装置101は、サーバアプリケーションに再開位置の更新要求を引き渡し、サーバアプリケーションが再開位置の更新を行っても良い。これらは、サーバアプリケーションに対して通知を行うハンドラを追加することによって実現できる。
(4) 上記の各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM(Read Only Memory)、またはRAM(Random Access Memory)などを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
(5) 上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、またはRAM、などから構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
(6) 本発明は、データ送信装置およびデータ受信装置だけでなく、それらの装置が動作する上記実施の形態に示す方法であってもよい。また、これらの方法をコンピュータに実行させるコンピュータプログラム、または前記コンピュータプログラムからなるデジタル信号であってもよい。また、本発明は、前記コンピュータプログラム又は前記デジタル信号を記録したコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM(Compact Disk Read Only Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、または半導体メモリなど、であってもよい。
 また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線通信回線、有線通信回線、インターネットを代表とするネットワーク、またはデータ放送等を経由して伝送するものであってもよい。
 また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであってよく、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作する。
 また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより本発明を実施してもよい。
(7)上記実施の形態においては、データ送信装置101が蓄積するマルチメディアコンテンツとして、放送されたマルチメディアコンテンツとしたが、本発明はそれに限るものではない。例えば、データ送信装置101がネットワークを通じて取得したマルチメディアコンテンツを蓄積し、データ受信装置102および103へ配信する構成であってもよい。
(8) 本発明は、上記実施の形態及び上記変形例をそれぞれ組み合わせてもよい。
 本発明にかかるデータ送信装置およびデータ受信装置は、ネットワークを通じたマルチメディアコンテンツの再生などに関わるデータの通信において、中断したデータ通信を、異なるメーカや異なる機種間であっても、的確に再開することが可能であるという優れた効果を有するため、例えばホームネットワークなどのネットワーク環境におけるマルチメディアコンテンツのサーバ装置、受信端末、機器制御装置、データ出力方法、または機器制御方法などとして有用である。
 101  データ送信装置
 102  データ受信装置
 103  データ受信装置
 104  ネットワーク
 105  放送局
 106  ケーブル
 107  マルチメディア配信システム
 201  入力部
 202  第1メモリ
 203  第2メモリ
 204  受信部
 205  多重分離手段
 206  デスクランブラ
 207  TSデコーダ
 208  映像出力部
 209  音声出力部
 210  TSマルチプレクサ
 211  ネットワーク部
 212  CPU
 2601  入力部
 2602  第1メモリ
 2603  第2メモリ
 2604  多重分離手段
 2605  TSデコーダ
 2606  映像出力部
 2607  音声出力部
 2608  ネットワーク部
 2609  CPU
 

Claims (12)

  1.  Java(登録商標)アプリケーションプログラムを実行するとともに、映像および音声のうち少なくとも一方を含むマルチメディアコンテンツを蓄積し、ネットワークを経由して前記マルチメディアコンテンツを受信装置へ送信するデータ送信装置であって、
     前記マルチメディアコンテンツおよび当該マルチメディアコンテンツの属性情報を蓄積する蓄積部と、
     前記マルチメディアコンテンツの少なくとも一部を前記受信装置へ送信する送信部と、
     前記送信部によって前記受信装置へ送信される前記マルチメディアコンテンツにおいて再生が再開される再開位置を示して前記属性情報の更新を要求する更新要求を前記受信装置から受信する受信部と、
     前記更新要求によって示される再開位置と、前記再開位置を識別するための再開位置識別子とが前記属性情報に含まれるように、前記受信部によって受信された更新要求に従って、前記蓄積部に蓄積されている前記属性情報を更新する管理部と
     を備えるデータ送信装置。
  2.  前記受信部は、前記再開位置および前記再開位置識別子を示す前記更新要求を前記受信装置から受信し、
     前記管理部は、前記更新要求に示される前記再開位置および前記再開位置識別子が前記属性情報に含まれるように、前記蓄積部に蓄積されている属性情報を更新する、
     請求項1記載のデータ送信装置。
  3.  前記受信部は、前記受信装置で動作するJavaアプリケーションプログラムに関するアプリケーション情報を示す前記更新要求を受信し、
     前記管理部は、さらに、前記更新要求に示される前記アプリケーション情報を用いて、前記更新要求に従った前記属性情報の更新を行うか否かを判断し、
     更新を行うと判断した際に、前記蓄積部に蓄積されている属性情報を更新する、
     請求項1記載のデータ送信装置。
  4.  前記管理部は、さらに、前記再開位置識別子を設定し、前記更新要求に示される前記再開位置と、設定された前記再開位置識別子とが前記属性情報に含まれるように、前記蓄積部に蓄積されている属性情報を更新する、
     請求項1記載のデータ送信装置。
  5.  前記管理部は、前記受信装置から取得した前記受信装置の情報を用いて前記再開位置識別子を設定する、
     請求項4記載のデータ送信装置。
  6.  映像および音声のうち少なくとも一方を含むマルチメディアコンテンツをネットワークを経由して送信装置から受信するデータ受信装置であって、
     Java(登録商標)アプリケーションプログラムを実行するJava実行部と、
     前記マルチメディアコンテンツの少なくとも一部と、当該マルチメディアコンテンツの属性情報とを前記ネットワークを経由して前記送信装置から受信する受信部と、
     前記受信部によって受信される前記マルチメディアコンテンツにおいて再生が再開される再開位置を示して前記属性情報の更新を前記送信装置へ要求する更新要求を、前記Java実行部で実行されるJavaアプリケーションプログラムからの指示に従って生成する管理部と、
     前記管理部によって生成された前記更新要求を前記送信装置へ送信する送信部と
     を備えるデータ受信装置。
  7.  前記管理部は、前記Java実行部で実行されるJavaアプリケーションプログラムから、前記再開位置と、当該再開位置を識別するための再開位置識別子とを受け取り、受け取った前記再開位置および前記再開位置識別子を示す前記更新要求を生成する、
     請求項6記載のデータ受信装置。
  8.  前記管理部は、前記データ受信装置内に記録されている情報に基づいて、前記再開位置を識別するための再開位置識別子を設定し、設定した前記再開位置識別子および前記再開位置を示す前記更新要求を生成する、
     請求項6記載のデータ受信装置。
  9.  前記データ受信装置内に記録されている情報は、前記Javaアプリケーションプログラムに関するアプリケーション情報であって、
     前記管理部は、前記アプリケーション情報を前記再開位置識別子として設定する、
     請求項8記載のデータ受信装置。
  10.  前記データ受信装置内に記録されている情報は、前記Javaアプリケーションプログラムによって設定された前記データ受信装置に関する情報であって、
     前記管理部は、前記データ受信装置に関する情報を前記再開位置識別子として設定する、
     請求項8記載のデータ受信装置。
  11.  Java(登録商標)アプリケーションプログラムを実行するとともに、映像および音声のうち少なくとも一方を含むマルチメディアコンテンツを蓄積し、ネットワークを経由して前記マルチメディアコンテンツを受信装置へ送信するデータ送信方法であって、
     前記マルチメディアコンテンツおよび当該マルチメディアコンテンツの属性情報を蓄積し、
     前記マルチメディアコンテンツの少なくとも一部を前記受信装置へ送信し、
     前記受信装置へ送信される前記マルチメディアコンテンツにおいて再生が再開される再開位置を示して前記属性情報の更新を要求する更新要求を前記受信装置から受信し、
     前記更新要求によって示される再開位置と、前記再開位置を識別するための再開位置識別子とが前記属性情報に含まれるように、受信された前記更新要求に従って、蓄積されている前記属性情報を更新する
     データ送信方法。
  12.  映像および音声のうち少なくとも一方を含むマルチメディアコンテンツをネットワークを経由して送信装置から受信するデータ受信方法であって、
     Java(登録商標)アプリケーションプログラムを実行し、
     前記マルチメディアコンテンツの少なくとも一部と、当該マルチメディアコンテンツの属性情報とを前記ネットワークを経由して前記送信装置から受信し、
     受信される前記マルチメディアコンテンツにおいて再生が再開される再開位置を示して前記属性情報の更新を前記送信装置へ要求する更新要求を、実行される前記Javaアプリケーションプログラムからの指示に従って生成し、
     生成された前記更新要求を前記送信装置へ送信する
     データ受信方法。
     
     
PCT/JP2010/002096 2009-03-25 2010-03-25 データ送信装置、データ受信装置、データ送信方法およびデータ受信方法 WO2010109865A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
MX2011009754A MX2011009754A (es) 2009-03-25 2010-03-25 Aparato de transmision de datos, aparato de recepcion de datos, metodo de transmision de datos y metodo de recepcion de datos.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16321509P 2009-03-25 2009-03-25
US61/163,215 2009-03-25

Publications (1)

Publication Number Publication Date
WO2010109865A1 true WO2010109865A1 (ja) 2010-09-30

Family

ID=42780561

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/002096 WO2010109865A1 (ja) 2009-03-25 2010-03-25 データ送信装置、データ受信装置、データ送信方法およびデータ受信方法

Country Status (3)

Country Link
US (1) US8244829B2 (ja)
MX (1) MX2011009754A (ja)
WO (1) WO2010109865A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013045495A (ja) * 2011-08-26 2013-03-04 Toshiba Corp コンテンツ処理装置
JP2013062018A (ja) * 2012-10-09 2013-04-04 Toshiba Corp コンテンツ処理装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101476439B1 (ko) * 2008-01-04 2014-12-26 엘지전자 주식회사 휴대 단말기 및 이를 이용한 네트워크 컨텐츠 제공 방법
JP2011129217A (ja) * 2009-12-18 2011-06-30 Buffalo Inc 情報記録装置及び情報記録方法
CN102207926B (zh) * 2010-03-30 2013-09-04 联想(北京)有限公司 一种计算机及实现计算机间耦合的方法
CN103283206B (zh) * 2011-01-04 2019-03-08 交互数字麦迪逊专利控股公司 使用dlna dms服务来远程调谐频道的方法和装置
CN102724218A (zh) * 2011-03-29 2012-10-10 利得电子有限公司 一种基于无线网络的影音播放装置
JP2012213111A (ja) * 2011-03-31 2012-11-01 Sony Corp 通信システム、通信装置並びに通信方法
CN104254005A (zh) * 2013-06-28 2014-12-31 深圳樱桃树科技有限公司 一种无线视频共享播放器及播放方法
CN104714760B (zh) * 2015-03-05 2018-05-15 青岛海信宽带多媒体技术有限公司 一种读写存储设备的方法及装置
US10284900B2 (en) 2016-03-15 2019-05-07 Sony Corporation Multiview as an application for physical digital media
US10455270B2 (en) 2016-03-15 2019-10-22 Sony Corporation Content surfing, preview and selection by sequentially connecting tiled content channels
US9894404B2 (en) 2016-03-15 2018-02-13 Sony Corporation Multiview TV custom display creation by aggregation of provider content elements
US20180096165A1 (en) * 2016-09-30 2018-04-05 Salesforce.Com, Inc. Provisioning for multi-tenant non-relational platform objects
US10380094B2 (en) 2016-09-30 2019-08-13 Salesforce.Com, Inc. Custom multi-tenant non-relational platform objects

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001346187A (ja) * 2000-05-31 2001-12-14 Toshiba Corp 電子サービスガイドのためのシステムおよび方法
JP2002328949A (ja) * 2001-04-27 2002-11-15 Hitachi Ltd デジタルコンテンツ視聴方法およびシステム
JP2003174636A (ja) * 2001-12-06 2003-06-20 Sony Corp 再生装置および方法、配信装置および方法、コンテンツデータ配信システム、記録媒体、並びにプログラム
JP2006270729A (ja) * 2005-03-25 2006-10-05 Kyocera Corp 携帯端末装置
JP2008085936A (ja) * 2006-09-29 2008-04-10 Hitachi Ltd コンテンツ送信装置、再生装置およびコンテンツ再生方法
JP2008131195A (ja) * 2006-11-17 2008-06-05 Toshiba Corp 画像表示装置および画像表示方法
JP2008283368A (ja) * 2007-05-09 2008-11-20 Sharp Corp ネットワークシステム、サーバ装置、端末装置、および再生制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751221B1 (en) * 1996-10-04 2004-06-15 Kabushiki Kaisha Toshiba Data transmitting node and network inter-connection node suitable for home network environment
KR100624865B1 (ko) * 1999-06-02 2006-09-18 엘지전자 주식회사 사용자 프로파일을 이용한 비디오 분할 시청 시스템
US7644172B2 (en) * 2002-06-24 2010-01-05 Microsoft Corporation Communicating via a connection between a streaming server and a client without breaking the connection
US9027063B2 (en) * 2002-11-27 2015-05-05 Deluxe Digital Distribution Inc. Video-on-demand (VOD) management system and methods
JP2005323068A (ja) 2004-05-07 2005-11-17 Victor Co Of Japan Ltd ホームネットワークavサーバ及びホームネットワークavサーバプログラム
US7954128B2 (en) * 2005-02-11 2011-05-31 Time Warner Cable Inc. Methods and apparatus for variable delay compensation in networks
WO2007002680A2 (en) * 2005-06-27 2007-01-04 Namx, Inc. System and method for control, distribution and purchase of wholesale goods and related interactions
JP2007158854A (ja) 2005-12-06 2007-06-21 Matsushita Electric Ind Co Ltd Avサーバ装置、クライアント機器、及びファイル転送システム
US20090300231A1 (en) * 2005-12-20 2009-12-03 Matsushita Electric Industrial Co., Ltd. Data output device, equipment control device, and multimedia delivery system
JP2009005146A (ja) * 2007-06-22 2009-01-08 Panasonic Corp データ伝送装置
US20090037596A1 (en) * 2007-08-01 2009-02-05 Viswanath Math Media persistent rtsp streaming
EP2088751B1 (en) * 2008-02-08 2013-07-03 Accenture Global Services Limited Streaming media interruption and resumption system
US8718135B2 (en) * 2008-09-19 2014-05-06 The Hong Kong University Of Science And Technology Method and system for transcoding based robust streaming of compressed video

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001346187A (ja) * 2000-05-31 2001-12-14 Toshiba Corp 電子サービスガイドのためのシステムおよび方法
JP2002328949A (ja) * 2001-04-27 2002-11-15 Hitachi Ltd デジタルコンテンツ視聴方法およびシステム
JP2003174636A (ja) * 2001-12-06 2003-06-20 Sony Corp 再生装置および方法、配信装置および方法、コンテンツデータ配信システム、記録媒体、並びにプログラム
JP2006270729A (ja) * 2005-03-25 2006-10-05 Kyocera Corp 携帯端末装置
JP2008085936A (ja) * 2006-09-29 2008-04-10 Hitachi Ltd コンテンツ送信装置、再生装置およびコンテンツ再生方法
JP2008131195A (ja) * 2006-11-17 2008-06-05 Toshiba Corp 画像表示装置および画像表示方法
JP2008283368A (ja) * 2007-05-09 2008-11-20 Sharp Corp ネットワークシステム、サーバ装置、端末装置、および再生制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013045495A (ja) * 2011-08-26 2013-03-04 Toshiba Corp コンテンツ処理装置
JP2013062018A (ja) * 2012-10-09 2013-04-04 Toshiba Corp コンテンツ処理装置

Also Published As

Publication number Publication date
US8244829B2 (en) 2012-08-14
US20100262674A1 (en) 2010-10-14
MX2011009754A (es) 2011-09-29

Similar Documents

Publication Publication Date Title
WO2010109865A1 (ja) データ送信装置、データ受信装置、データ送信方法およびデータ受信方法
US7950039B2 (en) Multimedia data transmitting apparatus and multimedia data receiving apparatus
US20080250101A1 (en) Multimedia data transmitting apparatus and multimedia data receiving apparatus
US20090193101A1 (en) Multimedia data transmitting apparatus and multimedia data management method
US20080172712A1 (en) Multimedia data transmitting apparatus, multimedia data receiving apparatus, multimedia data transmitting method, and multimedia data receiving method
JPWO2007072680A1 (ja) データ出力装置、機器制御装置およびマルチメディア配信システム
CA2508747C (en) Apparatus and methods for implementation of network software interfaces
US9883251B2 (en) Method and apparatus for managing connection between broadcast receiving device and another device connected by network
US20080141323A1 (en) Content information outputting apparatus, content information receiving apparatus, content information outputting method, content information receiving method
US20090106801A1 (en) Content processing device and content processing method
US20090193486A1 (en) Digital set-top terminal with partitioned hard disk and associated system and method
US10554745B2 (en) Method and apparatus for managing connection between broadcasting reception device and another device which are connected through network
KR20080078829A (ko) 방송 수신 장치, 영상 축적 장치 및 멀티미디어 배포시스템
CN101406058A (zh) 数据输出装置、设备控制装置以及多媒体通信系统
JP2009200813A (ja) 被制御装置、制御システムおよび管理装置
US9271041B2 (en) Methods of performing scheduled recording in home network system and digital media server and digital media player for performing the same
KR20110051471A (ko) 방송 수신기 및 홈네트워크를 통한 전자프로그램 가이드 공유 방법
WO2013061364A1 (ja) 映像信号の送受信方法、表示装置、及び送信装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10755667

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: MX/A/2011/009754

Country of ref document: MX

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10755667

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP