WO2011155098A1 - 再生装置、記録媒体、再生方法、プログラム - Google Patents

再生装置、記録媒体、再生方法、プログラム Download PDF

Info

Publication number
WO2011155098A1
WO2011155098A1 PCT/JP2011/000496 JP2011000496W WO2011155098A1 WO 2011155098 A1 WO2011155098 A1 WO 2011155098A1 JP 2011000496 W JP2011000496 W JP 2011000496W WO 2011155098 A1 WO2011155098 A1 WO 2011155098A1
Authority
WO
WIPO (PCT)
Prior art keywords
content
copy
playback
recording medium
directory
Prior art date
Application number
PCT/JP2011/000496
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 CN201180001251.6A priority Critical patent/CN102369577B/zh
Priority to EP11745463.7A priority patent/EP2581908A4/en
Priority to JP2011524041A priority patent/JP4814407B1/ja
Publication of WO2011155098A1 publication Critical patent/WO2011155098A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00166Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised contents recorded on or reproduced from a record carrier, e.g. music or software
    • G11B20/00173Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised contents recorded on or reproduced from a record carrier, e.g. music or software wherein the origin of the content is checked, e.g. determining whether the content has originally been retrieved from a legal disc copy or another trusted source
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00166Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised contents recorded on or reproduced from a record carrier, e.g. music or software
    • G11B20/00181Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised contents recorded on or reproduced from a record carrier, e.g. music or software using a content identifier, e.g. an international standard recording code [ISRC] or a digital object identifier [DOI]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00217Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source
    • G11B20/00224Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source wherein the key is obtained from a remote server
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00855Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a step of exchanging information with a remote server
    • G11B20/00862Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a step of exchanging information with a remote server wherein the remote server can grant the permission to use a content
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2541Blu-ray discs; Blue laser DVR discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • H04N2005/91307Television signal processing therefor for scrambling ; for copy protection by adding a copy protection signal to the video signal
    • H04N2005/91328Television signal processing therefor for scrambling ; for copy protection by adding a copy protection signal to the video signal the copy protection signal being a copy management signal, e.g. a copy generation management signal [CGMS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • H04N2005/91357Television signal processing therefor for scrambling ; for copy protection by modifying the video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/907Television signal recording using static stores, e.g. storage tubes or semiconductor memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal

Definitions

  • the present invention belongs to the technical field of byte code application control technology.
  • a bytecode application is an executable program obtained by compiling a class structure described using object-oriented programming language source code, and is composed of device-independent code (bytecode). Say things. In recent playback devices, not only playback control for content playback, but also other interactive control and additional control are executed by this bytecode application to increase the added value of the playback device and content. Has succeeded.
  • a function to be implemented in the playback apparatus includes a content copy function described in the following patent document.
  • An object of the present invention is to provide a playback device that allows various content providers to develop an application using the device-specific function while implementing a special function as a device-specific function in the playback device.
  • a playback device capable of achieving the above object is a playback device that plays back content recorded on a recording medium and executes a function for the content,
  • the functions for the content include a standardized playback control function and a device-specific function unique to the device, A platform part for reading and operating a bytecode application from a recording medium;
  • the platform portion of the playback device has a programming interface that can be used by a bytecode application, and the programming interface that can be used by the bytecode application includes a playback control programming interface and a communication programming interface,
  • the bytecode application calls the playback control programming interface to instruct the playback control unit to perform playback control, Using the communication programming interface, socket connection is made with the unique function control unit as the counterpart, and the unique function control unit is instructed to perform device-specific control through the socket connection.
  • the device-specific function control unit is requested to execute the device-specific function by making a socket connection to the device-specific function control unit. For example, it is possible to allow an application to use a device-specific function without adding / modifying the API for digital stream reproduction control that has already been standardized. Since the device-specific functions are used without adding / modifying the existing playback control API, it is expected that various content providers will be developed and put into the market using applications using special functions. As a result, there are a wide variety of user interfaces for activating special functions, and the user can use special functions through a user interface that is easier to understand and familiar.
  • the leading manufacturer makes the content provider use the special function, and only the manufacturer that has succeeded in developing it independently can obtain a license from the content provider. Can be attached.
  • the playback apparatus may solve the following additional technical problem.
  • a service that enables a user to take a movie on a portable terminal by copying the digital stream for the portable terminal to a portable terminal connected to a personal computer is widely used.
  • the content provider must prepare an execution disk on the personal computer separately from the main part. 2. Even if the user does not use the personal computer for watching movies, the service is provided. In order to execute it, it is necessary to use a personal computer. 3. Since the service is provided via the personal computer, there are many issues such as the fact that the device manufacturer cannot appeal the functions of the playback device. Each provider, user, and device manufacturer had disadvantages.
  • Another object of the present invention is to provide a service in which an application program on a read-only medium and a unique function of a playback device are linked, while maintaining compatibility with other playback devices, and a third device such as a personal computer. It is to provide without intervention.
  • the playback device for achieving this purpose is as follows.
  • the recording medium is a first recording medium
  • the first recording medium includes a first directory and a second directory under a root directory.
  • the first directory is a directory in which the main contents are recorded, and the bytecode application is recorded in the first directory
  • the second directory stores content for viewing and viewing, and the content for viewing and viewing is content having a format different from that of the main content, and is a target of device-specific functions.
  • the device-specific function is an inter-media copy in which a file constituting the content for viewing for viewing is copied from the first recording medium to the second recording medium.
  • the main movie recorded in the first directory and the protected content for the portable terminal recorded in the second directory can be combined on one disc, and the transfer of the protected content for the portable terminal can be controlled from the application on the disc.
  • a personal computer is not required, and it is possible to realize a take-out viewing service using only a playback device.
  • the playback device may be designed to solve the following additional technical problems.
  • Another object of the present invention is to provide a playback apparatus that can realize a stable start of a bytecode application without standardizing an API.
  • a playback apparatus for achieving the above object is shown below. That is, An on-media library for device-specific functions is recorded in the first directory of the first recording medium, and the on-media library executes device-specific functions on other bytecode applications recorded in the first directory.
  • Provides a programming interface for The on-media library is When a call to the device-specific function execution programming interface is made from another bytecode application, the call of the programming interface is converted into a socket command and then output to the specific function control unit, and a response from the specific function control unit is sent. Convert it to a return value or event and return it to the other bytecode application that made the call,
  • the socket connection constitutes a communication path for transmitting the socket command and response.
  • the on-media library recorded on the first recording medium uses an API for socket connection when using the device-specific function
  • the on-media library recorded on the first recording medium is used when the application is started. There is a high probability that the link between the API used by the server and the native API in the playback device for socket communication will be successful, and the application itself will not fail.
  • Protocol analysis of communication data related to device-specific functions performed between the application and the playback device can be centrally managed by the library, eliminating the need for protocol analysis in the application itself, improving application productivity. . *
  • the playback device further comprises a verification unit for verifying the validity of the digital signature file in the archive file of the on-media library,
  • the verification unit calculates a hash value of the digital signature file in the archive file of the on-media library based on the authentication key incorporated in the playback device, If the calculated hash value matches the value of the digital signature included in the digital signature file in the archive file of the on-media library, the bytecode application determines that it is valid, If the verification unit determines that the digital signature file is not valid, the unique function control unit is different from the reproduction control even if it receives a command related to a device-specific function different from the reproduction control from the bytecode application. The execution of the device specific function may be rejected.
  • the content of the communication data between the application and the playback device can be encrypted, it is possible to prevent the act of illegally monitoring the content of the communication data and misusing the information related to the specific functions of the playback device.
  • FIG. 4 is a sequence diagram showing data transmission / reception with a bytecode application, a digital copy module 35, and a digital copy server 36.
  • FIG. 2 is a detailed diagram of a digital copy module 35.
  • FIG. 3 is a flowchart of a digital copy process in the digital copy module 35. It is the figure which showed the structure of BD-ROM. An example of a directory structure of a BD-ROM in which protected contents for a plurality of portable terminals having different stream formats are recorded is shown. An example of the relationship between the index.bdmv file and the title, the contents of the application management table and the contents of the playlist access information in the BD-J object of each title are shown. It is a sequence diagram which shows the detail of API call in an application.
  • FIG. 1 shows the detail of API call in an application.
  • FIG. 6 is a diagram showing state transition of a digital copy module 35. It is a sequence diagram which shows the detail of local communication in a terminal. It is a flowchart which shows the process sequence from the function confirmation by a BD-J application to initialization. The processing procedure from the copy destination status confirmation to the parameter set is shown. It is a subflowchart which shows the detail of the selection procedure of a copy source storage directory. 14 is a flowchart showing a processing procedure from confirmation of the remaining number of copies by the BD-J application to key writing. It is a figure which shows an example of the display screen displayed in the process of digital copying. It is a flowchart which shows the process sequence of a digital copy module. It is a continuation of the flowchart of FIG.
  • FIG. 20 It is a figure which shows the more concrete structure of the platform part 20 which is the bytecode processing module shown in FIG. It is a figure which shows the directory structure in the secure memory card used as local storage. It is a figure which shows the signature verification of the application in the past. It is a figure which shows the signature verification based on the digital certificate which a reproducing
  • the invention of the reproducing apparatus provided with the above problem solving means can be implemented as a player device for reproducing the package medium, and the invention of the integrated circuit can be implemented as a system LSI incorporated in the player device.
  • the invention of the reproduction method can be implemented as a time series procedure realized by this player device.
  • the invention of the program can be implemented as an executable program recorded in a computer-readable recording medium and installed in a player device.
  • FIG. 1 is a diagram showing an example of a form of usage of the playback apparatus according to the present invention.
  • a playback apparatus according to the present invention is a playback apparatus 101.
  • the playback apparatus 101 forms a home theater system together with the remote controller 102, the television 103, the secure memory card 104, the read-only media 105, the portable terminal 106, and the secure memory card 107.
  • the playback apparatus 101 includes an insertion slot for inserting a removable medium 104 such as an SD memory card, a memory stick, a compact flash (registered trademark), a smart media, or a multimedia card.
  • a removable medium 104 such as an SD memory card, a memory stick, a compact flash (registered trademark), a smart media, or a multimedia card.
  • an insertion port such as USB for connecting to the portable terminal 106 is also provided.
  • the remote controller 102 is an accessory of the playback device 102, receives an operation on the playback device 102 from the user, and transmits an instruction signal corresponding to the operation to the playback device 102.
  • operations for the playback device there are operations for causing the playback device to perform playback control of read-only media, and operations for causing the playback device to perform device-specific functions.
  • the playback device 101 has a network communication function and can communicate with an external server.
  • the television 103 provides an interactive operation environment to the user by displaying a playback image of a movie work or displaying a menu or the like.
  • the secure memory card 104 is a recording medium used as a tray for protected content for mobile terminals copied by the device-specific function when the device-specific function is executed by the playback device.
  • a microSD card or an SDHC card is applicable.
  • the secure memory card 104 has a protected area and a system area, and an encrypted decryption key exists in the protected area. In the system area, there are a media ID (MID) and a media key block (MKB) for decrypting the decryption key.
  • MID media ID
  • MKB media key block
  • the read-only media 105 is a recording medium for supplying movie works to the home theater system.
  • the portable terminal 106 can be loaded with a secure memory card 104 and can use the protected content for the portable terminal written in the secure memory card 104.
  • the encryption / decryption key written in the protected area of the secure memory card 104 is decrypted using the MKB recorded in the system area of the copy destination medium, and the key information (title key) included in the decryption key is decrypted.
  • the encrypted digital stream included in the protected content for the portable terminal is decrypted and used as necessary.
  • the use here refers to decoding and reproducing the content for take-out viewing.
  • FIG. 2A shows an internal configuration of the recording medium according to the first embodiment. As shown in this figure (a), the main content and the protection content for portable terminals are recorded on the recording medium according to the first embodiment.
  • the main content is content stored in the recording method or the protection method of the read-only media 105. From the stream file 201, the stream information file 202, the playlist information file 203, the index table 204, the archive file 205, and the operation mode object 206, It is configured.
  • the stream file 201 stores a digital stream in a transport stream format obtained by multiplexing a video stream, one or more audio streams, and a graphics stream.
  • the stream information file 202 guarantees random access to an arbitrary source packet in the transport stream in the stream file and continuous reproduction with other transport streams.
  • the stream file is managed as an “AV clip”.
  • the stream information file has an entry map that shows information such as the encoding format, frame rate, bit rate, resolution, etc. of the stream in the AV clip and the source packet number of the GOP head position in association with the presentation time stamp of the frame period. Therefore, if you load this stream information file into memory before accessing the stream file, you can understand what the transport stream is in the stream file you want to access. Execution of random access can be guaranteed.
  • the playlist information file 203 is a file that stores information for causing the playback device to play back the playlist.
  • a “playlist” is a playback path defined by specifying playback sections on the time axis of the transport stream (TS) and logically specifying the playback order between the playback sections. Of these, it plays the role of defining which part is played back and in what order the scene is developed.
  • the playlist information defines the “type” of the playlist.
  • the playback path defined by the playlist information is a so-called “multipath”. Multipath is a bundle of a playback path (main path) defined for a main TS and a playback path (subpath) defined for a subordinate TS.
  • the index table 204 defines a correspondence between a plurality of title numbers that can be stored in the title number register in the playback apparatus and an operation mode object that defines an operation mode.
  • the title recorded on the recording medium is a set of an operation mode object specified by the title number and a play list reproduced from the operation mode object.
  • the title numbers in the title number register are 0, 1 to 999, and an indefinite value (0xFFFF).
  • Title number 0 is the title number of the top menu title.
  • the top menu title is a title that can be called by a menu call operation by the user.
  • the title number of indefinite value (0xFFFF) is the title number of the first play title.
  • the first play title is a title that displays a warning to a viewer, a logo display by a content provider, or the like immediately after loading a recording medium.
  • the index table 204 has an entry (title index) corresponding to each title number, and by describing an operation mode object that defines an operation mode in each title index, Specify in detail whether to operate in the operation mode.
  • the archive file 205 is a file obtained by archiving a class structure file (class file) of a bytecode application together with a digital certificate manifest file, a disk signature signature file, a disk signature encryption key file, and a permission request file.
  • the application is loaded together with this archive file, and at the time of class loading, the validity of the application can be verified using a digital certificate, a disk signature, and a disk signature encryption key.
  • the permission request file exists, the operation by the application can be limited to those given a certain authority.
  • the operation mode object 206 is a control unit associated with any title number in the index table. When the corresponding title number is set in the title number register as the current title, the title corresponding to the title number is displayed. Show how it works.
  • FIG. 2B shows the internal structure of the operation mode object.
  • the operation mode object includes an “application management table”, a “terminal management table”, “application cache information”, “playlist access information”, and a “key allocation table”.
  • the “application management table” is a control table that instructs the application manager and class loader to perform class loading and application signaling with the title as a boundary.
  • the “terminal management table” is a HAVi device configuration and GUI It is a management table for instructing the multimedia home platform (MHP) whether or not to use fonts for GUI and user operation masks.
  • MHP multimedia home platform
  • “Application cache information” is a control table for instructing the cache manager to cache in / out the archive file when the title is selected, and the play control designation is given to the playback control unit when the “playlist access information” title is selected. It is a control table to indicate.
  • the “key assignment table” is a control table that instructs the event manager to associate keys with events.
  • Class load is a process to generate an instance of a class file archived in an archive file in the heap area of the platform. While an instance generated in the heap area exists, it is an instance generated in the heap area.
  • An application can be executed.
  • Application signaling is a control that prescribes whether to automatically start an application that is an instance of a class file, or whether a life cycle in which an application can be executed is a title boundary or a disk boundary.
  • a title boundary is an instance of a class file archived in an archive file at a certain point from the start of the title to the end of the title in the platform heap area. The management is to eliminate the heap area.
  • a disk boundary is an application that generates an instance of a class file archived in an archive file in the platform heap area at a certain point in time from when the disk is inserted to when the disk is ejected. This is a management to delete instances from the heap area. Conversely, control that does not delete an instance from the heap area even if a disk is ejected is called “disk unboundary”. “HAVi device configuration” defines the resolution of the graphics plane and the font used for character display when the application executes the GUI processing.
  • Playlist access is the designation of a playlist that can be played by the started application and a playlist that should be automatically played when a title is selected.
  • “Archive file cache-in” is a process of prefetching the archive file subject to class loading to the cache.
  • “Archive file cache-out” is a process of deleting an archive file existing in the cache from the cache. It is processing.
  • “Associating a key and an event” is to assign an event registered in the event listener of the application to a key that can be operated by the user.
  • the operation mode object includes an operation mode object for operating the playback device using a navigation command.
  • the protected content for mobile terminals is content for viewing and viewing that has the same identity as the main content, but the storage method and the protection method format are different from the main content storage method and the protection method format.
  • the stream file 207, the program information file 208, and the management information file 209 are management information corresponding to the stream file 201, the stream information file 202, and the playlist information file 203 constituting the main content.
  • the copy information storage file 210 is unique to protected content for mobile terminals.
  • the copy information storage file 210 is a file that stores copy information, and a content ID exists as one of the copy information.
  • the content ID is a 128-bit identifier assigned to content supplied by a content provider in order to identify each protected content for mobile terminals.
  • the content ID of the target device-specific function is managed in the server database.
  • the content ID is assigned to uniquely identify the content for mobile terminals.
  • the identifiers the upper predetermined bits are for identifying the content provider.
  • FIG. 3 shows the internal structure of the playback device.
  • the playback apparatus includes a drive device 1, a demultiplexer 2, a video decoder 3, a plane set 4, a video plane 4a, a graphics plane 4b, a rendering engine 5, a synthesis unit 6, an audio decoder 7, and a device interface 8. , A host microcomputer 9, a reproduction control unit 10, a user interface 11, and a register set 12.
  • the drive device 1 includes a read-only media 105 drive and a secure memory card 104 drive.
  • the drive of the read-only medium 105 loads the read-only medium 105 and reads out the source packet series constituting the digital stream recorded on the recording medium via a buffer.
  • the drive of the secure memory card 104 is loaded with the secure memory card 104 or other recording medium and accessed.
  • a slot number is also assigned to the drive of the portable terminal 106 and managed as “drive”. Will be.
  • These secure memory card 104 drives are managed in units of “slots”.
  • a device list indicating the state of the read-only media 105 and the secure memory card 104 loaded in the drive in a format corresponding to each of a plurality of slot numbers is referred to as a “device device list”.
  • the demultiplexer 2 performs demultiplexing on the source packet sequence read from the read-only media 105, obtains a PES packet, and outputs it to the corresponding decoder.
  • the video decoder 3 decodes the read video stream and writes an uncompressed picture in the plane set 4.
  • the plane set 4 is composed of a plurality of plane memories.
  • the plane memory is a memory for storing pixel data for one screen in units of lines and outputting the pixel data along the horizontal synchronization signal and the vertical synchronization signal.
  • Each plane memory stores pixel data for one screen obtained by decoding video, subtitles, GUI, and background images.
  • plane memories constitute a layer model, and the contents stored in each plane memory are used for layer synthesis.
  • this layer synthesis in the layer model of the plane memory, the process of superimposing the pixel values of the pixel data stored in the plane memory of the two layers is executed for all combinations of the two layers in the layer model. That is done.
  • the video plane 4a is one of plane sets, and stores uncompressed picture data having a resolution of 1920 ⁇ 1080.
  • the graphics plane 4b is one of the plane sets, and stores graphics to be superimposed on the video plane in an uncompressed format.
  • “Graphics” here refers to the display content expressed by pixel data in ARGB format stored in these graphics planes, and the characters and symbols obtained by expanding the text code using fonts. Includes bitmaps and GIF / JPEG / PNG images (called “drawing images”) obtained by decoding GIF / JPEG / PNG data.
  • the rendering engine 5 is equipped with basic software such as Java2D and OPEN-GL, decodes JPEG data / PNG data according to the request from the bytecode application, obtains images and widgets, and writes them to the graphics plane.
  • the image data obtained by decoding the JPEG data is the GUI wallpaper.
  • Pixel data obtained by decoding the PNG data is written in the graphics plane, and button display with animation can be realized.
  • the images and widgets obtained by decoding these JPEG data / PNG data can be used to display a menu for accepting title selection, subtitle selection, and audio selection by a bytecode application, or to operate a stream playback-linked game. It is used to configure GUI parts.
  • a bytecode application accesses a WWW site, it is used to construct a browser screen for that WWW site.
  • the synthesizing unit 6 performs layer synthesis of a plurality of plane memories.
  • the audio decoder 7 decodes PES packets obtained by demultiplexing that constitute an audio stream.
  • the device interface unit 8 When the device interface unit 8 is connected to another device in the home theater system via an interface, the device interface unit 8 moves to the data transmission phase through the mutual authentication phase and the negotiation phase, and performs data transmission.
  • the capabilities including decoding capability, playback capability, and display frequency
  • the counterpart device are ascertained and set in the player setting register to determine the transmission method for subsequent transmissions.
  • uncompressed and plain text pixel data for one line in the picture data subjected to layer synthesis is transferred to the display device at a high transfer rate according to the horizontal synchronization period in the display device.
  • audio data in uncompressed / plaintext format is sent to other devices (including not only the display device but also an amplifier and a speaker) connected to the playback device. Forward.
  • devices such as a display device, an amplifier, and a speaker can receive uncompressed / plaintext picture data and uncompressed / plaintext audio data, and can realize reproduction output.
  • the counterpart device has a decoding capability, it is possible to pass-through transmission of a video stream and an audio stream. In pass-through transmission, a video stream and an audio stream can be transmitted in a compressed / encrypted format.
  • the host microcomputer 9 is composed of MPU, ROM, and RAM, and executes a bytecode application obtained by loading an archive file at intervals.
  • the playback control unit 10 controls the drive device 1 to read the index table, operation mode object, playlist information file, stream information file, and stream file from the read-only medium 105 and the playlist read from the recording medium. Playback control based on information and stream information is executed.
  • the playback control unit 10 controls the drive device 1 to read the index table, operation mode object, playlist information file, stream information file, and stream file from the read-only medium 105 and the playlist read from the recording medium. Playback control based on information and stream information is executed.
  • When reading the stream file it is possible to realize random access in which a source packet corresponding to an arbitrary point in time is read from the stream file.
  • the user interface 11 receives an operation on the operation device 102.
  • the register set 12 includes a plurality of player status registers and a plurality of player setting registers.
  • the player status register is a hardware resource for storing the numerical value that is the operand when the MPU of the playback device performs an arithmetic operation or a bit operation, and the initial value is set when the optical disc is loaded.
  • this register determines the validity of the stored value.
  • the stored value includes a current title number, a playlist number, a current playback time point, and the like. Since the initial value is stored when the read-only medium 105 is loaded, this stored value is temporary, and this stored value is valid if the read-only medium 105 is ejected or the playback device is turned off. Loses sex.
  • the player setting register is different from the player status register in that power supply measures are taken. Since power supply measures are taken, the stored value is saved in a non-volatile memory when the playback device is turned off, and the stored value is restored when the playback device is powered on.
  • the capability of the counterpart device found by negotiation with the connection partner device is set in the player setting register.
  • FIG. 4 shows a software layer configuration in the playback device.
  • the basic layer configuration includes a file system 13 and a real-time OS 14, on which a command processing module 15 and a byte code processing module 16 coexist in the same layer, and the command processing module 15 and the byte code processing module 16.
  • the module manager 17 exists in a common upper layer.
  • the file system 13 allows the read-only media 105 and the secure memory card 104 to be accessed in units such as directories and files.
  • the real-time OS 14 is an operating system (for example, Linux) for embedded software, and includes a kernel of the operating system and a basic input / output unit.
  • Linux for embedded software
  • the command processing module 15 includes a command interpreter, decodes and executes the navigation command, and selects a playlist to be reproduced according to the execution result. Since the navigation command is described in a syntax similar to DVD-Video, the playback device can realize DVD-Video-like playback control by executing such navigation command. For example, in the case of a BD-ROM playback device, the byte code processing module 16 corresponds to an HDMV module.
  • the bytecode processing module 16 is a platform unit 20 that operates an instance of a class structure in an archive file recorded on the read-only media 105105.
  • the byte code processing module 16 corresponds to a BD-J module.
  • the module manager 17 holds the index table read from the read-only media 105, and performs mode management and branch control.
  • the mode management by the module manager 17 is an assignment of a module that determines which of the command processing module 15 and the bytecode processing module 16 executes a dynamic scenario.
  • the real-time OS 14 and the bytecode processing module 16 constitute a platform unit 20 of a bytecode application.
  • the platform unit 20 has a programming interface that can be used by a bytecode application.
  • Programming interfaces that can be used by bytecode applications include a playback control programming interface standardized for playback control of digital streams using playlist information, and a communication programming interface standardized for communication. is there.
  • the byte code processing module 16 includes a class loader 21, an application manager 22, a heap memory 23, a byte code interpreter 24, an embedded library 25, and a playback control API 26.
  • the class loader 21 is one of the system applications, and loads the byte code application by reading the byte code from the class file existing in the archive file and storing it in the heap memory 31.
  • the application manager 22 is one of the system applications, and performs application signaling of the bytecode application such as starting the bytecode application and ending the bytecode application based on the application management table in the operation mode object.
  • the heap memory 23 is a stack area in which byte codes of system applications and embedded libraries, byte codes of general applications that are targets of application signaling, and parameters used by these byte code applications are arranged.
  • the bytecode interpreter 24 converts the bytecode stored in the heap memory 31 into a native code and causes the MPU to execute it.
  • the embedded library 25 provides an AV playback function, a network communication function, and a medium access function for a bytecode application. These AV playback function, network communication function, and medium access function are standardized by a standards body.
  • the playback control API 26 is a standardized playback control programming interface, and is a programming interface for providing a playback control function via the built-in library 25 to the bytecode application.
  • the real-time OS 14 includes a native API 27, and the file system 13 includes a read control unit 31, a write control unit 32, and a device specific function control unit 33.
  • the native API 27 is a programming interface for providing the basic functions of the real-time OS 14 to the bytecode application, and is a communication programming interface in the OSI reference model.
  • the API for using the basic functions of the real-time OS 14 is also called a “system function”.
  • the native API 27 includes a basic API for communication, and can support TCP / IP and UDP / IP.
  • the read control unit 31 controls file reading such that the file constituting the main content and the file constituting the protected content for the portable terminal are read from the read-only medium 105 and supplied to the bytecode processing module 16.
  • the write control unit 32 controls file writing such that the file constituting the protected content for the portable terminal is received from the read control unit 31 and written to the secure memory card 104.
  • the device unique function control unit 33 realizes a device unique function.
  • the device-specific function in this specification refers to a function that can be executed only by a player device manufactured by a manufacturer that has developed a playback device and cannot be executed by a player device manufactured by another manufacturer.
  • a function specialized for the operation device unique to the game device can be cited as the device-specific function. If it is an operation device that detects a user's operation by gripping and swinging by a person, or detects a user's operation by detecting a person's movement, it is specific to the operation device and is specific to the game device.
  • the function becomes the device-specific function.
  • the online function specific to the game device can be set as the device specific function. If these various types of device-specific functions are targeted, the explanation becomes complicated. Therefore, in the following description, the description will be made on the assumption that the copy function as described in Patent Document 1, that is, the copy function for the content for viewing in viewing shown in FIG.
  • Equipment-specific functions are restricted for use by bytecode applications. Therefore, only the bytecode application related to creation of various content providers that are permitted to use the device-specific function can use the device-specific function. A bytecode application related to the creation of a content provider that is not permitted to use the device-specific function cannot use the device-specific function.
  • the device-specific function control unit sends a combination of the content ID and serial number to the external server, and the content provider, which is the main content source, verifies that the device-specific function is valid. Let the server determine if the licensee is a licensee. If the server determines that the licensee is a valid licensee, the device-specific function is executed. If it is determined that the licensee is not a valid licensee, the device-specific function is not executed.
  • the bytecode application of this embodiment is characterized in that it performs command / response communication with the device-specific function control unit 33 through in-terminal local communication using the socket protocol.
  • a “socket” is a binding of one of the predetermined port numbers and the IP address of the local host.
  • the on-media library transmits commands to the device-specific function control unit and device-specific functions through socket communication. Receives a response from the function control unit.
  • the socket protocol includes a socket creation process for receiving a request, a bind process for binding an IP address and a port number, which are server address information, to a socket, a listening process for preparing a connection request by setting a request connection queue, and a connection process.
  • the process of accepting a waiting request, establishing a socket connection, and creating a new socket connection are performed through an acceptance process of sending and receiving commands and responses through this socket connection.
  • socket creation process, bind process, listening process, accept process, send / receive process are performed using system functions such as Socket function, bind function, listen function, accept function, send function, recv function, closesocket function. .
  • IP address and port number are connected to the socket by a SOCKADDR_IN structure.
  • These functions and structures are provided by the native API 27 of the real-time OS 14. Since the socket protocol using the intra-terminal local communication is provided by the native API of the real-time OS 14 except that the port to be used is special, the byte code application is included in the byte code processing module 16. Needless to say, by using the built-in library 25, device-specific functions can be used as long as the native API 27 of the real-time OS 14 is used.
  • the IP address of the local host is used as the IP address for local communication within the terminal.
  • Local host refers to the system you are currently using and is used by TCP / IP to communicate with itself as needed.
  • the IP address of the local host in IPv4 is 127.0.0.1
  • the IP address of the local host in IPv6 is a loopback device assigned to “:: 1”.
  • the socket protocol occupies a port called a copyyard socket port. Therefore, the port number for the digital copy process is implemented independently. In order to notify the port number used for the process, the bytecode application needs to set the port number used for the process processing.
  • on-media library (1) that provides a programming interface for using device-specific functions to other bytecode applications, and a programming interface for device-specific functions.
  • the following describes the on-media library that provides a programming interface for using device-specific functions.
  • FIG. 5 is a diagram showing the on-media library 28, the device-specific function control unit 33 in the playback device, and the external server 29.
  • the on-media library 28 and the external server 29 will be described.
  • the on-media library 28 separates data transmission / reception with the device-specific function control unit 33 using local network access from other bytecode applications, forms a library, and can supply the data from the read-only media 105. is there.
  • the difference between the built-in library 25 and the built-in library 25 is that the on-media library 28 is supplied from the read-only media 105 while the built-in library 25 is built in the playback apparatus.
  • the protocol used for data transmission / reception with the device-specific function control unit 33 does not depend on individual bytecode applications, but is defined as a common protocol.
  • a protocol for digital copy using local network access between the on-media library 28 and the device-specific function control unit 33 is referred to as “digital copy socket protocol”.
  • the digital copy socket protocol converts an API provided by the on-media library 28 for a bytecode application into a command (referred to as a digital copy socket command) on the digital copy socket protocol, and performs a device-specific function control unit by socket communication. Transmission and reception of command transmission to 33 and reception of response from the device-specific function control unit 33 are performed.
  • the external server 29 manages the playback device that can use the device-specific function and the content that is the target of the device-specific function, and uses the device-specific function usage history in response to a request from the device-specific function control unit 33. Update and device usage permission.
  • FIG. 5 a read-only medium 105 and a secure memory card 104 are drawn on the lower side, a playback device and a server are further drawn thereon, and an on-media library 28 is further drawn thereon.
  • the pipe cm2 schematically shows communication between the on-media library 28 and the device-specific function control unit 33. This communication is local communication within the same terminal, and is performed through the native API 27.
  • An arrow cp1 schematically shows a copy from the read-only medium 105 to the secure memory card 104. This copy is a management information write for using a device-specific function, and is made by an instruction from the on-media library 28 through local communication within the terminal.
  • the pipe cm1 schematically shows communication between the device-specific function control unit 33 and the external server 29.
  • This communication is global communication between terminals. Downloading to the secure memory card 104 is made by a communication request by the device-specific function control unit 33 via this global network.
  • the socket communication API which is a conventional network API
  • the conventional network API usage method for bytecode applications such as BD-J applications on BD-ROM is mainly used for connection to external servers, and is used for downloading additional content such as bonus videos and additional subtitles / applications. I have been.
  • the playback terminal currently being executed can be accessed like a server from the viewpoint of a bytecode application. It is possible to call various functions that are not caught.
  • FIG. 6 is a flowchart showing a processing procedure of the bytecode application for the bytecode application to use the device-specific function.
  • the bytecode application determines whether the playback device supports digital copy.
  • the on-media library 28 displays a system property ("digitalcopy.port") indicating the communication port assigned to the digital copy. ) Exists (step S501).
  • step S501 connection is made to a predetermined fixed port (step S502), and if the system property exists, connection is made to the port indicated by the system property (step S503). Next, it is confirmed whether or not the connection to the communication port is successful (step S504). If the connection to the communication port fails, it is determined that the current reproducing apparatus does not support digital copy (step S508).
  • step S504 the digital copy library requests initialization to the device specific function control unit 33 via the communication port (step S505). Then, the response from the device specific function control unit 33 to the initialization request in step S505 is received by the connected communication port (step S506). If a response indicating that the initialization is successful is received in step S506, the device-specific function is executed because the current playback device can execute the device-specific function (step S507). If there is no response from the device specific function control unit 33 or if a response indicating initialization failure is received, the current playback device cannot execute the device specific function, and returns without executing the device specific function. (Step S508). Thus, the bytecode application determines the feasibility of the device-specific function based on whether the port connection is successful or whether the device-specific function control unit 33 is successfully initialized.
  • the device-specific function is provided to the bytecode application using the socket function supported as the native API, so that the API for digital stream reproduction control that has already been standardized is provided.
  • the device-specific function can be used by the application without adding / modifying. Since the device-specific function is used in the application without adding / modifying, it is expected that various content providers will be developed and put into the market using the application using the special function. As a result, there are a wide variety of user interfaces for activating special functions, and the user can use special functions originally developed by a manufacturer through a user interface that is easier to understand and familiar.
  • the market can be oligopolized by products that implement special functions developed by one manufacturer as device-specific functions.
  • the content of the device unique function is not specifically specified.
  • the device unique function is assumed to be a digital copy.
  • the digital copy in the present embodiment refers to a function for copying content for viewing from the read-only medium 105 to the secure memory card 104 for viewing on a portable terminal, that is, a copy between media.
  • a service in which the content in the read-only media 105 is taken out to the portable terminal by executing reproduction between media under the management of the external server is referred to as “e-move service”.
  • Content that is the target of the e-move service and that is supposed to be taken out (content for viewing and taking out) is called “e-move content”.
  • Managed copy in AACS requires transcoding. For example, if it is a 2-hour AV stream, the transcoding requires 2 hours of processing time. On the other hand, in the e-move service, processing for writing the content recorded in the read-only media 105 to the secure memory card 104 is sufficient, and the processing time is short.
  • Apple's digital copy includes a DVD-Video disc and a DVD-ROM disc that contains content for copying. Load and copy the recorded program to a memory card by running it on a personal computer. Since BD-ROM, DVD-Video, and DVD-ROM are included, the price is high, which is undesirable for the user.
  • the e-move service allows the bytecode application recorded on the read-only media 105 to directly copy for take-out viewing. Is unnecessary.
  • Protected content for mobile terminals can be copied for private use under rights management by an external server. Therefore, digital copying by the device specific function control unit 33 needs to be performed under rights management by a digital copy server, which is one of the external servers.
  • FIG. 7 shows the flow of data inside and outside the playback device in digital copying.
  • the device-specific function control unit 33 includes a digital copy module 35, and the external server 29 is replaced with a digital copy server 36.
  • the digital copy module 35 reads a file that forms the protected content for the portable terminal from the read-only medium 105 and writes the file to the secure memory card 104 to copy the file that forms the protected content for the portable terminal. I do.
  • a plurality of parameters for file reading / writing are set in advance, and based on these parameters, copy pre-processing and post-processing are performed.
  • the multiple parameters include the current serial ID, current source location, current server URL, current output device, and current resume position.
  • the preprocessing by the digital copy module 35 is to acquire the remaining number of times of copy of the protected content for the mobile terminal as a target from the server.
  • the content ID is extracted from the copy information file under the directory of the read-only medium 105 specified by the file path indicating the current source location, and the secure memory card 104 loaded in the drive specified by the current output device. retrieve media ID from. Sending a combination of these content ID, media ID, and current serial ID to the server specified by the current server URL, causing the server to search the database, and the remaining copies that hit these combinations Get the count and return it to the bytecode application.
  • Post-processing is downloading a so-called decryption key, and sending the combination of the content ID, serial ID, media ID, and MKB of the current output device to the server, causing the server to search the database.
  • the title key that hits the combination is extracted, the decryption key is generated, and downloaded to the secure memory card 104.
  • the digital copy server 36 has a title key database for a plurality of serial IDs for managing rights of protected contents for portable terminals.
  • a title key is managed in association with each of a plurality of serial IDs, and a search request using a combination of content ID, serial ID, media ID, and MKB as a keyword is made from the device specific function control unit 33. For example, search the database using the serial ID in this keyword, read the title key that hits the combination from the database, and encrypt this title key using the content ID, serial ID, media ID, and MKB.
  • the decryption key is obtained, and the decryption key is downloaded to the digital copy module 35 that requested the search request.
  • the digital copy server 36 manages a plurality of copy tickets in association with a set of content ID, media ID, and serial ID.
  • the copy ticket is rights management information for managing how many times private copying is permitted for each combination of content ID, media ID, and serial ID.
  • a digital copy operator The number of private copies is managed according to the determined number of remaining copies. Each time a digital copy is made, the remaining number of copies is reduced by one. If a search request using the content ID, serial ID, and media ID as keywords is made from the digital copy module 35, the combination condition of these content ID, serial ID, and media ID is hit from a plurality of copy tickets in the database. The remaining copy count is read from the database and returned to the requesting digital copy module 35.
  • the digital copy is limited to the number of remaining copies managed by the digital copy server 36 or less.
  • FIG. 7 a playback device is drawn in the middle, a secure memory card 104 is drawn below, and a read-only media 105 and a digital copy server 36 are drawn on the top.
  • Main data handled in the digital copy process are serial ID, content ID, media ID (MID), media key block (MKB), protected content for mobile terminals, and decryption key.
  • the read-only media 105 includes a file storing a content ID, protected content for mobile terminals, a bytecode application, and an on-media library 28.
  • the serial ID is identification information for identifying each individual read-only medium 105.
  • the serial ID of the target device-specific function is the digital copy server. It is managed in 36 databases.
  • PMSN Pre-recorded Media Serial Number
  • BCA Breast Cutting Area
  • MID Media ID
  • the protected content for the portable terminal is copied, and the decryption key is downloaded.
  • the MKB is read from the secure memory card 104 and transmitted to the digital copy server 36 together with the content ID and serial ID.
  • the bytecode application when the bytecode application acquires the serial ID, the bytecode application does not directly pass the serial ID to the digital copy module 35, but passes the serial ID to the on-media library 28, The serial ID is delivered to the digital copy server 36 through the on-media library 28.
  • the serial ID specified by the bytecode application is transferred to the digital copy library as indicated by arrows sd1, sd2, and sd3, and is transferred to the digital copy server 36 through the digital copy module 35 through the socket communication API.
  • the content ID is read and sent to the server.
  • the content ID is read by the digital copy module 35 as indicated by an arrow cd1 from the copy information file on the disc designated by the bytecode application.
  • the media ID and MKB are read by the digital copy module 35 as indicated by an arrow md1 from the system area of the copy destination secure memory card 104 designated by the bytecode application.
  • the serial ID, content ID, media ID (MID), and MKB thus obtained are sent to the digital copy server 36 as indicated by arrows sd3, cd2, and md2, and in exchange for these, from the digital copy server 36, the arrow dk1
  • the decryption key is transmitted as shown in FIG. This is a download from the server, and the digital copy module 35 writes the decryption key in the protected area of the copy destination medium as indicated by the arrow dk2.
  • the above is the main data flow handled in the digital copy process.
  • the decryption key written in the protected area of the copy destination medium includes key information (title key) for decrypting the encrypted data in the protected content for the portable terminal.
  • the decryption key is encrypted so that it can be decrypted using the MKB recorded in the system area of the copy destination medium.
  • the above is the data flow among the digital copy module 35, the digital copy server 36, the bytecode application, and the secure memory card 104. Next, details of communication performed between the bytecode application and the device unique function control unit 33 will be described.
  • FIG. 8 is a sequence diagram showing data transmission / reception with the bytecode application, the digital copy module 35, and the digital copy server 36.
  • This figure is a sequence diagram showing a communication sequence of the system.
  • a bytecode application, an on-media library 28, a digital copy module 35, and a digital copy server 36 are arranged.
  • a plurality of time axes are drawn in the vertical direction. These time axes are managed by a clock provided in the apparatus. Each time point on the time axis is the API call timing.
  • a communication path is not established between the bytecode application and the on-media library 28, and a normal in-application API call is only made.
  • the on-media library 28 and the digital copy module 35 are socket communications within the same terminal.
  • Global socket communication between different terminals is formed between the digital copy module 35 and the digital copy server 36.
  • the sequence in this figure is: a. Device confirmation phase, b. Initialization phase, d. Parameter set phase, e. Remaining copy count confirmation phase, f. Copy start phase, g. Copy progress confirmation phase, h. Consists of.
  • these phases will be described.
  • the function is confirmed with respect to the on-media library 28, and the digital copy module 35 via the on-media library 28 is notified of whether or not the digital copy is accepted from the on-media library 28. Consists of interactions.
  • the on-media library 28 is initialized, and whether or not the initialization is received from the on-media library 28, and the digital copy module 35 via the on-media library 28 is received. Consists of interactions.
  • “d. Parameter set phase” a setting process for setting a copy parameter to the on-media library 28 is performed, and the parameter setting is accepted from the on-media library 28. It consists of an exchange with the copy module 35. In other words, when the bytecode application receives a notification that digital copying is possible, it subsequently sets parameters necessary for digital copying to the digital copy module 35 via the digital copy library.
  • the digital copy library transmits the specified parameters to the digital copy module 35 using the connected communication port.
  • the “e. Remaining copy count confirmation phase” is a process for confirming the remaining copy count with respect to the on-media library 28, and receiving the remaining copy count from the on-media library 28. It consists of interaction with the server via the module 35.
  • the bytecode application then checks the remaining number of copies. As with the parameter setting, the remaining copy count is also inquired to the digital copy module 35 via the digital copy library and using the connected communication port. Since the remaining copy count is managed by the digital copy server 36, when the digital copy module 35 receives a request for confirming the remaining copy count, as shown by the arrow, the content ID and serial ID are determined from the currently set parameters. The media ID is extracted, and these three values are sent to the digital copy server 36.
  • the on-media library 28 and the digital copy module 35 is local communication within the terminal, and no external Internet connection is required. However, a global Internet connection is provided between the digital copy module 35 and the digital copy server 36. Is required.
  • the digital copy server 36 determines the number of remaining copies based on the received value and returns the value of the remaining number of copies to the digital copy module 35.
  • the digital copy module 35 notifies the byte code application of the remaining number of copies via the digital copy library.
  • the “f. Copy start phase” performs a process of requesting the on-media library 28 to start copying, and from the on-media library 28, one of success / failure of copy start and notification of copy completion is sent. It consists of an exchange with the digital copy module 35 via the on-media library 28 of receiving.
  • the bytecode application makes a request to start copying when it is determined that the number of times of copying remains one or more. This copy start request is also transmitted to the digital copy module 35 using the communication port via the digital copy library as before.
  • the digital copy module 35 starts copying, and during that time, notifies the copy progress status as needed in response to a request from the bytecode application.
  • the on-media library 28 that performs a process of requesting the on-media library 28 to write a key and receives a completion notification of writing the decryption key from the on-media library 28, digital copy It consists of interaction with the server via the module 35. More specifically, when receiving a copy completion notification, the bytecode application requests the digital copy module 35 to write a decryption key. Upon receiving the decryption key write request, the digital copy module 35 extracts the content ID, serial ID, media ID, and MKB from the currently set parameters and sends these four values to the digital copy server 36.
  • the digital copy server 36 generates a decryption key based on the received value and returns the decryption key to the digital copy module 35.
  • the digital copy module 35 writes the decryption key received from the digital copy server 36 to the copy destination medium. When the writing is completed, the digital copy module 35 notifies the bytecode application of the completion of writing via the digital copy library.
  • the bytecode application executes the digital copy process through inter-application communication with the on-media library 28.
  • the processing procedure of the digital copy process by the on-media library 28 is as shown in FIG.
  • FIG. 9 is a detailed diagram of the digital copy module 35.
  • the digital copy module 35 includes a communication management unit 601, a key information reading unit 602, a media status management unit 603, a copy execution unit 604, a copy status notification unit 605, a copy progress management unit 606, a key information writing unit 608, and a command processing unit. 609 and a free capacity determination unit 610.
  • the communication management unit 601 assigns one of the communication ports in the playback device for digital copy control, and performs protocol communication with the bytecode processing module using this digital copy communication port. Specifically, the digital copy communication port is opened as a server socket, waits for a request from the bytecode processing module, and when data is sent to the digital copy communication port, the sent data is Analyze and perform processing corresponding to the data. Similarly, the processing result is sent back to the bytecode processing module via the digital copy communication port. In addition, the communication management unit 601 performs data communication management with the digital copy server 36. Specifically, a communication process necessary for acquiring from the digital copy server 36 a decryption key necessary for decrypting the encrypted digital stream for the portable terminal is performed.
  • the key information reading unit 602 reads information necessary for generating the decryption key from the read-only read-only media 105 and the copy-destination secure memory card 104. Specifically, the PMSN (Pre-recorded Media Serial Number) indicating the physical serial ID of the recording medium recorded in the BCA (Burst Cutting Area), which is a special area on the read-only media 105, from the copy source. From the copy-destination read-only medium 105, the medium-specific information (media ID) set uniquely for each medium and the key information necessary for generating the decryption key are recorded in the copy-destination medium. Read the media key block (MKB).
  • MKB media key block
  • the media status management unit 603 manages a list of media types that can be used as a copy destination by the playback device. For example, if the playback device has an SD card slot and a USB memory slot and only the SD card is currently inserted, the SD card is determined to be the current copy destination. If both the SD card and USB memory (or a mobile device connected via USB) are inserted, it is determined that both the SD card and USB memory can be used as the copy destination. In addition, the free space management of the copy destination medium is also performed.
  • the copy execution unit 604 performs a process of copying the protected content for the portable terminal on the read-only medium 105 instructed by the bytecode application to another medium. An instruction from the bytecode application is made on the digital copy communication port via the on-media library 28. Note that the protected content for the portable terminal cannot be reproduced at the copy destination only by data copying by the copy execution unit 604. After the decryption key writing unit 608 described later completes the writing of the decryption key to the copy destination, reproduction can be performed at the copy destination.
  • the copy status notification unit 605 manages status transitions such as copy start, normal end, and error end, and notifies the status transition to the bytecode application connected to the digital copy module 35 and local communication through the digital copy communication port.
  • the copy progress management unit 606 manages the remaining number of bytes to be copied and the number of copied bytes, and notifies the current progress information in response to a request from the bytecode application via the digital copy communication port.
  • the decryption key writing unit 608 writes the serial ID of the read-only medium 105 acquired by the key information reading unit 602, the media ID of the copy destination medium, and the decryption key generated from the MKB. Since the decryption key is generated based on the secret key in the digital copy server 36, the digital copy module 35 uses the key information reading unit 602 to read the serial ID of the read-only medium 105, the media ID of the copy destination medium, and the MKB. Then, these values and the content ID of the content to be copied are transmitted to the digital copy server 36 via the communication management unit 601. The digital copy server 36 generates a decryption key from the received value and the private key held by the digital copy server 36, and transmits the decryption key to the communication management unit 601.
  • the generated decryption key is encrypted so that it can be decrypted by the MKB of the copy destination medium.
  • the key information writing unit 608 writes the decryption key in the copy destination protection area.
  • the decryption key includes key information (title key), and is used for decrypting the protected content for mobile terminals in which the key information is encrypted.
  • the command interpretation unit 609 interprets the command issued by the on-media library 28 and controls the communication management unit 601 to the command processing unit 609 using the command operands, so that the command issued by the on-media library 28 is changed.
  • the control content corresponding to the opcode is executed.
  • the free space determination unit 610 determines whether there is free space required for copying at the copy destination based on the remaining free space of the copy destination medium and the copy source content.
  • the digital copy module 35 has the above-described configuration, and these operations can be controlled from a bytecode application having a local communication connection to the digital copy communication port. Since a direct API that can operate these controls does not exist in the bytecode processing module, it cannot be controlled from a bytecode application that is not connected to the digital copy communication port.
  • FIG. 10 is a flowchart of the digital copy process in the digital copy module 35.
  • the digital copy module 35 confirms whether or not the protected content for the portable terminal exists on the read-only medium 105 inserted in the playback device (step S101).
  • the digital copy module 35 determines whether or not this “EMOVE” directory exists. It is determined whether or not the protected content for the portable terminal exists on the disc.
  • the EMOVE directory is a directory for storing a set of files targeted for the e-move service.
  • step S101 If there is no protected content for the portable terminal in step S101, the digital copy process is interrupted, and if there is protected content for the portable terminal, the digital copy module 35 designates the communication port for the digital copy socket command and the server. A socket is created and a connection from the bytecode application to the digital copy socket command communication port is awaited (step S102).
  • a server socket is created and a port is opened only when protected content for portable terminals exists in step S101.
  • Another way to minimize the time to open the port is to create a server socket and open the port only when the bytecode application is running (ie, only when playing a title linked to the bytecode application), or from the bytecode application. It is possible to open a port after receiving an open command.
  • a general-purpose system property API is used to indicate a port open instruction.
  • a value in a predetermined property is set by a bytecode application, or from a general-purpose register in a register set.
  • a predetermined value is set for a certain one, it can be considered that a port open request has been made.
  • a port When using the system property API, for example, a property name “digitalcopy.portstatus” is prepared, and when “OPEN” is set as the value indicated by the property name, a port may be opened.
  • a server socket is created in step S102 and a digital copy socket command communication port is opened, it waits for a bytecode application (including a digital copy library) to be connected to the port (step S103).
  • the connection request from the bytecode application is exchanged between the digital copy module 35 and the bytecode application (digital copy library) for a predetermined command character string (or binary data), and data that can be sent to each other is expected. It is desirable to achieve this by mutually confirming whether the values match. Of course, if the data sent to each other does not match the expected value, it is regarded as illegal and the subsequent processing is interrupted (step S104).
  • step S104 determines in step S104 that the connection with the bytecode application has succeeded, then a list of copy destination candidates for digital copy (a list of copy destination media supported by the playback device) is obtained from the bytecode application. Waiting for the request and receiving the request via the communication port, the playback apparatus checks the media supported as the copy destination of the protected content for the portable terminal (step S105). If there is no media that is supported as a copy destination for protected content for mobile devices, digital copy is interrupted. If there is media that is supported, a list of the media is sent to the bytecode application via the same communication port ( Step S106).
  • the digital copy module 35 can determine in advance whether or not the free space is insufficient at this time, the medium that has insufficient free space and the medium that has not yet been inserted in the list of media returned in step S106. Give it to the bytecode application including the media. The reason for this is that if you don't pass anything that does not have enough free space, the playback device does not support it, so you cannot determine whether it is not in the list because it is not in the list or there is not enough free space. It is. Although the playback apparatus supports it, if the free space is insufficient, the user can select to secure the free space by deleting unnecessary files on the medium, and the process returns in step S106. It is desirable to include items that have insufficient free space in the list. For the same reason, if the list includes uninserted media, the user can be notified of forgetting to insert media.
  • the bytecode application presents the obtained copy destination candidate list to the user, and notifies the digital copy module 35 of the media selected by the user (step S107).
  • the digital copy module 35 checks whether or not the selected medium has sufficient free space for copying and whether or not the remaining number of copies remains (step S108), and there is no free space or the remaining number of copies. If there is no remaining, notify the bytecode application that there is insufficient capacity or there is no remaining number of copies.
  • the confirmation of the remaining number of copies requires an inquiry to the digital copy server 36.
  • the bytecode application receives a shortage notification from the digital copy module 35, the bytecode application returns to step S107 again, selects another medium, prompts the user to delete unnecessary files, or uses the same type of medium. Display a message such as replacing with a larger one.
  • the confirmation of the free space in step S108 includes confirmation of the free space of the protection area as well as the user area of the copy destination medium.
  • step S108 is indispensable not only for checking the user area but also for checking the free capacity of the protected area.
  • step S108 If it is determined in step S108 that the remaining number of copies remains and that the copy destination medium has sufficient free space, the digital copy module 35 copies the protected content for the portable terminal on the disc to the designated medium (step S108). S109). During this time, the bytecode application can grasp the current copy progress by inquiring the digital copy module 35 about the copy progress, and can display the copy progress status to the user. When the data copy of the protected content for the portable terminal is completed, the digital copy module 35 obtains a decryption key for decrypting the protected content for the portable terminal from the digital copy server 36 (step S110).
  • the digital copy server 36 To obtain the decryption key, four data of serial ID, content ID, media ID, and MKB are transmitted to the digital copy server 36 via the network I / F, and the copy destination medium is based on the secret key of the digital copy server 36.
  • the digital copy server 36 generates a decryption key for decrypting the protected content for the portable terminal, and the digital copy module 35 receives the decryption key generated on the digital copy server 36 side, and decrypts it in the copy destination protection area. Is written (step S111). *
  • the on-media library 28 and the digital copy module 35 store the protected content for the portable terminal recorded in advance in the read-only medium 105 by the local communication within the terminal, and the secure memory card 104. Therefore, the manufacturer of the playback apparatus can make the specified content provider use the inter-media copy function. As a result, the creation of content using the inter-media copy function can be boosted and the content can be enhanced.
  • FIG. 11 is a diagram showing a configuration of a BD-ROM (hereinafter also referred to as “BD”).
  • BD-ROM a BD-ROM will be described mainly for an AV application for reproducing AV content such as a movie, but the BD-ROM is used as a recording medium for a computer such as a CD-ROM or a DVD-ROM. Of course, it is also possible.
  • BD-ROM like other optical discs such as DVD and CD, has a recording area that spirals from the inner periphery to the outer periphery, and logical data between the inner lead-in and outer lead-out. Can be recorded.
  • BCA Burst Cutting Area
  • PMSN Pre-recorded Media Serial Number
  • application data such as video data is recorded starting with file system information (volume).
  • volume file system information
  • the file system is UDF, ISO9660, etc., and logical data recorded in the same way as a normal PC can be read out using a directory and file structure, and a 255 character file name.
  • the directory name can be read out.
  • the directory and file structure on the BD-ROM are the BDMV directory, CERTIFICATE directory, and EMOVE directory immediately below the root directory (ROOT).
  • the BDMV directory is a directory in which data such as AV contents and management information handled by the BD-ROM is recorded, and the CERTIFICATE directory has a discroot.crt (file name fixed) file under it, which is used for application signature verification The certificate is recorded.
  • the data under the BDMV directory corresponds to the main content.
  • the storage method in the format of the digital AV stream included in the main content is the BD-Video method, and the protection method is the AACS method.
  • data under the EMOVE directory corresponds to protected content for mobile devices.
  • different protected contents for mobile terminals are recorded in, for example, the DATA1 directory, the DATA2 directory, and the DATA3 directory.
  • the storage method in the format of the digital AV stream included in the protected content for portable terminals is the SD-Video method, and the protection method is the CPRM method.
  • the BDMV directory Under the BDMV directory, there are five subdirectories called PLAYLIST directory, CLIPINF directory, STREAM directory, BDJO directory, and JAR directory, and two types of files, index.bdmv and MovieObject.bdmv, are arranged Has been.
  • the STREAM directory is a directory that stores the file that is the main body of the digital stream, and the file with the extension m2ts (xxx.m2ts [“xxx” is variable, extension “m2ts” is fixed]) Exists.
  • the PLAYLIST directory there is a file with an extension mpls (xxx.mpls [“xxx” is variable, and extension “mpls” is fixed]).
  • the CLIPINF directory contains a file with the extension clpi (xxx.clpi [“xxx” is variable, and extension “clpi” is fixed]).
  • a file with an extension jar (xxx.jar [“xxx” is variable, extension “jar” is fixed]) exists.
  • the BDJO directory there is a file with the extension bdjo (xxx.bdjo [“xxx” is variable, and extension “bdjo” is fixed]).
  • a file with the extension “m2ts” is a digital AV stream in MPEG-TS (TransportStream) format, and is obtained by multiplexing a video stream, one or more audio streams, and one or more sub-picture streams. It is done.
  • the video stream indicates the moving image portion of the movie
  • the audio stream indicates the audio portion of the movie
  • the sub-picture stream indicates the subtitle of the movie.
  • a file with the extension “clpi” is stream management information corresponding to each digital AV stream on a one-to-one basis.
  • the stream management information has information such as the encoding format, frame rate, bit rate, and resolution of the digital AV stream, and an entry map (EP_map) indicating the start position of the GOP.
  • the file with the extension “mpls” is a file storing playlist information, and the stream playback section (“In Time / Out Time”) is recorded.
  • a file with the extension “jar” is a Java archive file, which describes a program of a bytecode application (BD-J application) that performs dynamic scenario control using a BD-J object. This file is required when it is desired to control the playback of each title indicating the playback unit of the content on the BD-ROM from the BD-J application.
  • This archive file includes a permission request file. The permission request file allows socket communication between the bytecode application and the local host.
  • Files with the extension “bdjo” are in BD-J mode. This file stores the operation mode objects.
  • index.bdmv (fixed file name) is an index table for the entire BD-ROM, and is an identifier assigned to each of the organizationID (32bit) that identifies the provider of movie works and the BD-ROM provided by the provider. DiscID (128 bits) and the like, and after the disc is inserted into the playback device, the index.bdmv is read first so that the playback device can uniquely recognize the disc.
  • index.bdmv includes a table indicating a plurality of titles that can be played back on the BD-ROM and BD-J objects that define individual titles in association with each other.
  • MovieObject.bdmv (file name fixed) is a file in which navigation commands are stored, and allows selection of a playlist and reading / writing of a player status register and player setting register. This completes the description of the BDMV directory. Next, the EMOVE directory will be described.
  • AV digital streams and management information for viewing content that is identical to the content recorded on the BD-ROM on a mobile device are recorded, and multiple copy sources are stored.
  • a directory is created.
  • DATA01, DATA02,..., DATAxx in the figure are copy source storage directories.
  • the copy source storage directory is a unit to be digitally copied. If there are four copy targets in one BD-ROM, the DATA01 directory, DATA02 directory, and DATA03 directory are under the EMOVE directory. , Four copy source storage directories DATA04 directory are recorded.
  • copy source storage directories Since various numbers of copy source storage directories can be created, there is a demand for digital copies such as protected content for a plurality of mobile terminals with different stream formats and protected content for a plurality of mobile terminals with different variations in playback contents. High protection content for portable terminals can be created in advance during authoring. This completes the description of the directory structure and file structure of the BD-ROM.
  • a set of files stored in the copy source storage directory is a target of digital copy.
  • a set of files to be digitally copied by being stored in the copy source storage directory is called a “copy source unit”.
  • FIG. 12 shows an example of a directory structure of a BD-ROM in which protected contents for a plurality of portable terminals having different stream formats are recorded.
  • This example assumes that there are two versions of VGA (Video Graphics Array) format and one-seg format for protected content for mobile devices. For mobile devices that support each of these two versions The protected content is handled as a separate copy source unit and recorded in the DATA01 directory and the DATA02 directory.
  • VGA Video Graphics Array
  • the DATA01 directory in this figure is a copy source storage directory corresponding to protected content for mobile terminals in VGA format.
  • Under the DATA01 directory there are five files EMOV_INF, MGR_DATA, PRG_MGR, PRG001.PGI, and MOV001.SD1.
  • EMOV_INF is a copy information file in which a content ID (hereinafter also referred to as “CID”) assigned to uniquely identify content for mobile terminals is recorded. Since EMOV_INF exists for each copy source storage directory, the content ID can be changed for each copy source storage directory, and the content ID can be the same.
  • CID content ID
  • the digital copy server 36 can handle and manage protected contents for individual mobile terminals arranged in a plurality of content IDs as separate contents. On the other hand, if the content ID is made the same among a plurality of copy source storage directories, the digital copy server 36 can handle protected contents for individual mobile terminals arranged in the plurality of content IDs as one content.
  • MOV001.SD1 is an encrypted MPEG4 video stream, and the resolution of each picture data is 640x480. Information for random access is included in the video stream.
  • MOV001.SD1 corresponding to the digital stream is encrypted by, for example, a predetermined encryption method (for example, CPRM method). Key information (title key) for decrypting a digital stream encrypted with a predetermined encryption method (for example, CPRM method) is not recorded in the BD-ROM, so it is protected from unauthorized playback. Yes.
  • PRG001.PGI is information corresponding to the playlist information, indicating the playback order of MOV001.SD1, the encoding method of the video stream and the audio stream, and the title name of the content for the mobile terminal.
  • the main content playlist in the BD-ROM is configured by defining the playback order of a plurality of AV streams, and the ratio of the playlist and AV stream in the main content is one-to-many. On the other hand, the ratio between the playlist and the AV stream in the protected content for mobile terminals is 1: 1. This means that interactive playback control is not planned for the protected content for mobile terminals, and is restricted to simple playback control for simply viewing an AV stream on a mobile device.
  • MGR_DATA the resume position of content for mobile terminals is recorded.
  • PRG_MGR records the total playback time of content for mobile terminals. *
  • the DATA02 directory is a copy source storage directory corresponding to protected content for mobile terminals in the 1Seg format.
  • EMOV_INF, MGR_DATA, PRG_MGR, and PGR001.PG1 are the same as the DATA01 directory.
  • MOV001.Sx1 is present instead of MOV001.SD1, and MOV001.MAI and MOV001 that are not in the DATA01 directory are different from the DATA01 directory.
  • MOV001.Sx1 is a stream file that stores an MPEG4-AVC format digital stream, and the resolution of each picture data is 320 ⁇ 240.
  • the MOI (Media Object Information) file includes an EntryPESPacketNum table.
  • the EntryPESPacketNum table indicates the number of TS packets existing from the head of the PES packet determined to include the MPEG4-AVC IDR picture to the head of the next PES packet.
  • the MAI (Media Attribute Information) file indicates the start time, end time, position information, and time offset of the TS packet discontinuity period constituting the MPEG4-AVC digital stream.
  • MOV001.SD1 in the DATA01 directory contains information for random access. On the other hand, there is no information for such random access in MOV001.Sx1. Instead, MOV001.Sx1 is associated with MOV001.MAI and MOV001.MOI.
  • the one-segment protected content for portable terminals is in a format in which management information for each stream is added. As described above, since the protected content for mobile terminals corresponding to various stream formats is recorded in advance in a plurality of copy source storage directories in the BD-ROM, in the digital copy, that is, in the MPEG4 format, the MPEG4-AVC format. Among them, it is possible to select the protected content for the mobile terminal that matches the desired stream format.
  • the DATA03 directory and DATA04 directory in this figure may store copy source units for take-out viewing in other storage formats, for example, QuickTime format or Windows® Media ⁇ Player format.
  • these formats are mentioned, the description will be complicated, and the description of these formats will be omitted.
  • FIG. 13A is a diagram showing an example of the relationship between the index.bdmv file and the title.
  • a title is a playback unit that combines an application and an AV stream, and the index.bdmv file describes the title structure on the disc.
  • Each title on the disc and the corresponding application (BD-J mode title) If there is a BD-J application, HDMV mode title is a scenario program).
  • “Top Menu” is a title that is played when the menu key on the remote controller is pressed or when title playback is finished, and is mainly used for selecting a title and selecting a subtitle / audio language.
  • the playback device is instructed to start the menu display BD-J application defined in the archive file (99999.jar) according to the application management table included in the BD-J object (99999.bdjo). It is done.
  • “First Play” is a title that is automatically played when BD starts up, and is mainly used for displaying the BD terms of service.
  • “Title # 1” is, for example, the title of the main video.
  • the playlist information file (00001.mpls) is displayed according to the playlist access information included in the BD-J object (00001.bdjo). Is used to reproduce the digital stream (00001.m2ts).
  • the playback apparatus is instructed to start the main playback BD-J application defined by the archive file (00001.jar).
  • “Title # 2” is, for example, a title of a privilege video.
  • a playlist information file (00002.mpls) is obtained according to the playlist access information included in the BD-J object (00002.bdjo).
  • the digital stream (00002.m2ts) is played back using.
  • “Title # 3” is a title corresponding to a digital copy, for example.
  • an archive file (88888.bdjo) of a digital copy management BD-J application that manages a digital copy GUI and the like
  • the on-media library archive file (11111.jar) is loaded.
  • e-MoveLibrary.class a class file called e-MoveLibrary.class.
  • the digital copy management BD-J application and the on-media library 28 constituting Title # 3 may be recorded separately in separate archive files, or may be recorded together in one JAR file. .
  • the example shown above is just an example. For example, if the playlist is not indicated in the playlist access information included in the BD-J object associated with “Title # 1”, the digital stream is not reproduced.
  • the BD-J application and the on-media library 28 shown in the application management table are executed.
  • the playback of the playlist according to the playlist access information included in the BD-J object is performed by the playback device.
  • FIG. 13B shows the contents of the application management table and the playlist access information in the BD-J object of each title.
  • the application management table included in the BD-J object (00001.bdjo) corresponding to Title # 1 describes 00001, which is the identification number of the main-part playback BD-J application. Therefore, when Title # 1 is selected, the main program playback BD-J application defined in the archive file (00001.jar) is played according to the application management table included in the BD-J object (00001.bdjo). Commanded by the device.
  • the playlist access information included in the BD-J object (00001.bdjo) describes 00001, which is the identification number of the playlist information file (00001.mpls). Therefore, when Title # 1 is selected, the playback apparatus is instructed to play the stream file (00001.m2ts) using the playlist information file (00001.mpls).
  • the playlist access information included in the BD-J object (00002.bdjo) describes “00002” which is the identification number of the playlist information file (00002.mpls). Therefore, when Title # 1 is selected, the playback apparatus is instructed to play the stream file (00002.m2ts) using the playlist information file (00002.mpls).
  • the application management table included in the BD-J object (88888.bdjo) corresponding to Title # 3 includes the identification number (88888) of the digital copy management BD-J application and the identification number of the on-media library 28. 11111 is described. Therefore, when Title # 3 is selected, the digital copy management BD-J application defined in the archive file (88888.jar) is started according to the application management table included in the BD-J object (88888.bdjo). The playback apparatus is instructed to activate the on-media library 28 defined by the archive file (11111.jar).
  • the on-media library 28 and the digital copy management BD-J application exist only in Title # 3, and these on-media library 28 and digital copy management are included in the application management table in the BD-J object of Title # 3.
  • the BD-J application is described. Therefore, when the title number of Title # 3 is set in the title number register and Title # 3 becomes the current title, class loading is performed for the on-media library 28 and the digital copy management BD-J application, and the on-media library 28
  • the digital copy management BD-J application is provided for execution by a bytecode interpreter.
  • the on-media library 28 and the digital copy management BD-J application are not constituent elements of Title # 1 and Title # 2, and are not described in the application management table of Title # 1 and Title # 2.
  • the operations of the on-media library 28 and the digital copy management BD-J application are finished.
  • the on-media library 28 and the digital copy management BD-J application are used for application signaling with a title as a life cycle.
  • the lifetime of the on-media library 28 is the same as the lifetime of the digital copy management BD-J application (in this example, the interval from the start time to the end time of Title # 3 is the on-media library 28 and BD-J application (in this example, Title # 1, which is different from Title # 3, which is different from the life span of the on-media library 28)
  • the use of the on-media library 28 by a BD-J application (described only in the application management table of Title # 2) can be restricted.
  • the commands that can be interpreted by the command processing unit 609 include the following.
  • Initialization request command (REQUEST_INITIALIZE) The initialization request command initializes the digital copy module 35 so that other socket commands can be used. Once initialized, some parameters (serial ID, source location, server URL, secure memory card 104 slot, resume point) are reset. When the command is executed again and successfully executed, these parameters are reset.
  • This command is valid in any state of finalizing during transfer, after transfer.
  • Responses to this command include an OK response and a fatal error response.
  • the OK response indicates initialization and activation of the digital copy module 35.
  • Fatal error indicates that initialization failed due to a fatal error.
  • Check ticket command (REQUEST_CHECKTICKET)
  • the check ticket command requests the digital copy server 36 to check the copy ticket using the parameters set by the parameter setting command for copying. Before this command is called, all parameters required by the process must be set with the set command.
  • the on-media library 28 can request execution of data transfer with a copy command. This command can be issued when the digital copy module 35 is in the initialization state or the ready state. This command has no arguments. Responses include an OK response, an invalid error response, and a connection error response. There is a busy error response.
  • the OK response indicates that the copy ticket check has been accepted and that the digital copy module 35 has successfully received the ticket response.
  • the invalid error response indicates that some of the parameters for the process are not set and the check ticket has failed.
  • the connection error response indicates that the response does not reach the digital copy server 36 or that a correct response has not been received from the digital copy server 36.
  • the busy error response indicates that the BD-ROM is locked for the AV playback process and the digital copy module 35 cannot access the BD-ROM. This error occurs when the digital copy module 35 is executed in a process different from the BD-ROM playback process. When this error code returns, the on-media library 28 must attempt a check ticket-by-data feed request instead of this command.
  • the fatal error response indicates that the ticket request failed due to a fatal error.
  • Check ticket by data feed command (REQUEST_CHECKTICKET_BYDATAFEED)
  • the check ticket by data feed command requests the digital copy server 36 to check the copy ticket using the parameters set by the parameter setting command for copying. Before this command is called, all parameters required by the process must be set with the set command.
  • the on-media library 28 can request execution of data transfer with a copy command. This command can be issued when the digital copy module 35 is in the initialization state or the ready state. When this command is called, the source location set by the setting command is ignored, and the specified binary data is used using the binary data specified by this command as the target information file.
  • This command is called only when the check ticket request returns with a busy error. Therefore, if there is no possibility that the check ticket request is returned with a busy error, the digital copy module 35 does not need to implement this command.
  • Argument is the length of information file, information file.
  • the response includes an OK response, an invalid error response, a connection error response, and a fatal error response.
  • the OK response is the status number and the remaining number of copies.
  • the OK response indicates that the copy ticket check has been accepted and that the digital copy module 35 has successfully received the ticket response.
  • the invalid error response indicates that some of the parameters for the process are not set and the copy ticket check has failed.
  • the connection error response indicates that the response does not reach the digital copy server 36 or that a correct response has not been received from the digital copy server 36.
  • the no support response indicates that the digital copy module 35 does not support this command. If the ticket check request is not likely to be returned, the digital copy module 35 does not need to implement this command and returns a no-support error response. If the ticket check request may be busy and return, the digital copy module 35 should implement this command and not return a no support response.
  • the fatal error response indicates that the ticket request has failed due to a fatal error.
  • Copy request command (REQUEST_COPY command)
  • the copy request command outputs content to the secure memory card 104 set by the output device setting command. This command is asynchronous and the on-media library 28 can check this transfer process through a progress acquisition command. If AV playback is performed during the transfer process, the copy speed is reduced and the data transfer process pauses until AV playback ends. The copy process is canceled when a cancel request is invoked, when a close request is invoked, or when a BD-ROM is ejected.
  • the copy ticket Before this command is called, the copy ticket must be checked by a check ticket request command. This command is valid in the ready state. Responses to this command include an OK response and a fatal error response.
  • the OK response is issued when the copy request is accepted and the digital copy module 35 starts copying the content.
  • the fatal error response indicates that the digital copy module 35 has failed to copy.
  • Copy-by-data feed request command (REQUEST_COPY_BYDATAFEED command)
  • the copy-by-data feed request command outputs content to the secure memory card 104 specified by the output device setting command.
  • This command is asynchronous and the on-media library 28 can check the copy progress via the process acquisition command.
  • the copy speed decreases or stops until AV playback ends.
  • This copy process is canceled when a cancel request is invoked, when a close request is invoked, or when a BD-ROM is ejected. Whether to clear partially copied data after canceling is an implementation matter.
  • the check ticket command must be checked before this command is called. This command is valid only when the digital copy module 35 is in the ready state.
  • the source location set by the source location command is ignored, and the binary data specified by the data feed request command is used as the target content.
  • This command is called only when the copy request is busy and returns. Therefore, this command has no possibility that the copy request returns with a busy error.
  • the digital copy module 35 need not implement this command.
  • As arguments there are a management data file, a program management file, a program file, and a movie file. Responses to this command include an OK response, a no support response, and a fatal error response.
  • the OK response indicates that the copy request is accepted and the digital copy module 35 starts copying the content.
  • the no support response indicates that the digital copy module 35 does not support this command. If there is no possibility that the copy request returns due to a busy error, the digital copy module 35 does not need to implement this command, and may return a no-support error. The digital copy module 35 may implement this command and not return a no support error.
  • the fatal error response indicates that copying cannot be started due to a fatal error.
  • Data feed request command (REQUEST_DATAFEED command)
  • the data feed request command initiates a copy of the data block identified for copying.
  • the on-media library 28 can call this command only if the copy-by-data feed request is successful.
  • the on-media library 28 adds data to the specified file.
  • the on-media library 28 must continuously request copies of a plurality of files. Other files should not be identified before completing the copy of the current file.
  • the size of the data block must be 64K bytes or less. When the end of the file is reached, the length of the data block is set to “0”.
  • Arguments are file name, data block length, and data block binary data recorded on the BD-ROM.
  • the OK response indicates that the copy of the data block is successful.
  • the no support response indicates that the digital copy module 35 does not support this command.
  • the fatal error response indicates that the digital copy module 35 has failed to copy. If this error occurs in the transfer state, the digital copy module 35 must transition to the stop state.
  • Cancel request command (REQUEST_CANCEL command)
  • the cancel request command requests cancellation of the current process. If the current process is successfully canceled, the partially copied data is deleted from the secure memory card 104. This command is valid only when the digital copy module 35 is in a transfer / post-transfer state.
  • Finalize request command (REQUEST_FINALIZE command)
  • the finalize request command requests the digital copy module 35 to download a key and finalize the process. Once the digital copy module 35 starts finalization, the on-media library 28 cannot cancel finalization.
  • Responses include OK response, connection error response, and fatal error response.
  • the OK response indicates that the digital copy server 36 has accepted the key download request and the digital copy module 35 has successfully accepted the key download response.
  • the connection error response indicates that the digital copy module 35 cannot reach the digital copy server 36 and that the correct response is not a response from the digital copy server 36.
  • the fatal error response indicates that the key download request has failed due to a fatal error.
  • the close request command is a command that closes the digital copy module 35 after completing the close operation, releases resources for the process, and instructs the digital copy module 35 to return to the uninitialized state. It is. This command is called in any state. If this command is called in the final state, the close operation is blocked until the final process is complete. When this command is called during transfer or after transfer, a cancel operation is executed and a close operation is started. As the response, there is an OK response indicating that the closing is successful, and a FATAL response indicating that the command has failed due to a fatal error.
  • Server URL setting command (SET_SERVERURL)
  • the server URL setting command sets the URL of the digital copy server 36 to be connected for the copy process. When this command completes successfully, the previous server URL is overwritten with the new server URL.
  • the response includes an OK response indicating that the server URL has been successfully set in the process, and a fatal response indicating that the command has failed due to a fatal error. If a space character is specified, the previously set URL is valid.
  • Source location setting command (SET_SRCLOCATION) The source location setting command sets the source location of the content to be copied. This source location must exist on the read-only media 105. When this command completes successfully, the previous source location is overwritten with the new source location.
  • the argument is an absolute path indicating a directory in the inserted read-only media 105.
  • the path name for setting the source location must be enclosed in / mnt / bdrom / EMOVE / DATA01. The identified file path must contain valid content.
  • Responses include an OK response indicating that the source location has been successfully set in the copy process, a fatal error response indicating that the command has failed due to a fatal error, and an invalid response.
  • the OK response indicates the location that was successfully set for the process.
  • the invalid response is because the specified path name does not specify the actual directory, the specified directory is not located on the BD-ROM, or the specified directory does not have valid content. appear.
  • Serial ID setting command (SET_SERIALID) The serial ID setting command sets the serial ID specified for this copy process. If the serial ID has already been set, when this command is successfully completed, the previous serial ID is overwritten with the new serial ID.
  • the response includes either an OK response indicating that the serial ID has been successfully set in the process, or a response indicating that the command has failed due to a fatal error.
  • Output device setting command (SET_OUTPUTDEVICE)
  • the output device setting command sets the slot of the drive device for the copy process. If the slot has been set, when this command is successfully completed, the previous target slot is overwritten by the new slot.
  • the response includes either an OK response indicating an output device that has been successfully set in the process, or a response indicating that the command has failed due to a fatal error.
  • Resume setting command specifies a resume point for the process. If the resume point is specified by this command, the digital copy module 35 updates the management data file of the secure memory card 104 after the process is completed. This is because the SZ_DATAV content is reproduced from the resume point. If a resume point is set, when this command is successfully completed, the previous resume point is overwritten by the new resume point. The resume point is reflected in the target secure memory card 104 only in the completed state. If this command is called in the completed state, it is immediately reflected in the target secure memory card 104. An argument in seconds can be specified as an argument. The response includes either an OK response indicating a resume point set successfully in the process or a response indicating that the command has failed due to a fatal error.
  • Revocation list setting command (SET_REVOCATIONLIST)
  • the revocation list setting command designates a device list length and a revocation list device list by operands. This command sets a revocation list in the digital copy module 35.
  • the revocation list is a list of illegal reproduction devices that have been marked as having been illegally copied in the past, and is used for processing authentication with an authentication circuit mounted on the secure memory card 104. This is to prevent the unauthorized reproduction apparatus indicated in the revocation list from executing digital copying.
  • the on-media library 28 must set the revocation list in the digital copy module 35 before calling the check ticket request command. If a revocation list has already been set, the previous revocation list is overwritten by a new revocation list when the above command is successful.
  • the response includes an OK response indicating that the revocation list has been successfully set for the process, and a FATAL response indicating that the command has failed due to a name error.
  • Device device list acquisition command (GET_DEVICELIST) The device device list acquisition command acquires a device list of the secure memory card 104 slot supported by the playback device for the process.
  • the response of this command is in the following format, listing the card slot numbered X, the card slot numbered X through USB connection, and other devices numbered X.
  • the response indicates that the command has been successfully completed.
  • the name of the local storage positioned as one of the plurality of slots is indicated at the end of the response message.
  • Device information acquisition command (GET_DEVICEINFO) The device information acquisition command acquires the total capacity / effective capacity of the secure memory card 104 inserted in the specified slot. This slot name is one acquired by the device device list acquisition command, and the response includes the total space, free space, and the number of programs. When the device information acquisition command is successful, the target secure memory card 104 is inserted, and when it is valid, the response message includes the total capacity / effective capacity and the number of programs.
  • Progress acquisition command (GET_PROGRESS) The progress acquisition command acquires data transfer progress status information. The response is the remaining size / total size. If untransferred, simply return OK. If the transfer is completed (the digital copy module 35 transfers and finalizing after transfer), (0 / total size) is returned. If the transfer process is stopped or canceled (stop, cancel), the total size copied is returned.
  • State acquisition command (GET_STATE) The status acquisition command indicates any of uninitialized, initialized, ready, transferring, after transferring, finalizing, completing, canceling, or stopping.
  • Parameter acquisition command (GET_PARAMETER)
  • the parameter acquisition command is a command for acquiring the current state, current source location, current output device, current server URL, current serial ID, and current resume point. If some parameters do not exist, an empty string is returned.
  • Asynchronous events here include an asynchronous device state insert event indicating that the secure memory card 104 has been loaded, an asynchronous device state eject event indicating that the secure memory card 104 has been ejected, and an asynchronous state change event. .
  • the asynchronous state change event notifies that there is no capacity of the secure memory card 104, write protection of the secure memory card 104, and the occurrence of an I / O error of the secure memory card 104.
  • Asynchronous state change event occurs when the state of the digital copy module 35 changes, except in the following cases i) and ii).
  • FIG. 14 is a sequence diagram showing details of the in-app API call. This sequence is described using the on-media library 28 API. In the horizontal direction of the figure, a digital copy management BD-J application, an on-media library 28, and a digital copy module 35 are arranged. A plurality of time axes are drawn in the vertical direction. Each time point on the time axis is a message transmission / reception timing.
  • the sequence in this figure is: a. Device check phase, b. Initialization phase, c. Copy destination status check phase, d. Parameter set phase, e. Remaining copy count check phase, f. Copy start phase, g. Copy progress It consists of a confirmation phase and h. Key writing phase.
  • the function confirmation phase consists of an API call that calls the BCManager # getInstanceAPI by the BD-J application and an inter-application communication called event throw (BCManager or UnsupportedOperationException throw) by the digital copy library for that call.
  • BCManager # getInstanceAPI acquires an instance of the BCManager class that has various methods for controlling the digital copy module 35. If the playback device does not support digital copy, an UnsupportedOperationException is thrown.
  • the initialization phase consists of an inter-application communication in which an BD-J application calls an BCManager # addBCStatusChangeListenerAPI, an API call that calls BCManager # initialBC, and a BCManagerInitialEvent event thrown by the digital copy library for that call.
  • BCManager # addBCStatusChangeListenerAPI is an API for monitoring the status change of the digital copy module 35.
  • the changed state is notified to the BD-J application.
  • BCManager # initializeBCAPI is an API for initializing the digital copy module 35.
  • the on-media library 28 connects to the digital copy module 35. If connection fails, throw UnsupportedOperationException. If initialization is successful, BCInitializedEvent is notified to the BD-J application.
  • the copy destination status confirmation phase consists of an API call that the BD-J application calls BCManager # getDeviceListAPI, an event throw by the digital copy library for that call, an API call that the BD-J application calls BCOutputDevice # getFreeSpaceAPI, and a digital call for that call It consists of inter-application communication called event throw by a copy library.
  • BCManager # getDeviceListAPI is an API for acquiring a media list (SD card, USB memory) supported by the playback device as a copy destination.
  • Each media is represented as an instance of BCOutputDevice class.
  • the BCOutputDevice class is a method (BCOutputDevice # getName) that obtains the media type and number (SD_1, USB_1) indicated by the instance, a method that obtains free capacity (BCOutputDevice # getFreeSpace), and a method that obtains the total capacity (BCOutputDevice # getTotalSpace).
  • 10737418240 (bytes) is returned as an example of the free space as a response to the call of the method (BCOutputDevice # getFreeSpace) for acquiring the free space.
  • the parameter set phase consists of an API call that calls BCManager # setServerURLAPI, an API call that calls BCManager # setSourceLocationAPI, an API call that calls BCManager # setOutputDeviceAPI, and an API call that calls BCManager # setSerialIdAPI.
  • Parameters set in the parameter setting phase are specifically the serial ID, the location of the copy source content, the URL of the digital copy server 36, and the copy destination medium.
  • the content ID uses a value described in the EMOV_INF file of the protected content for the portable terminal to be copied.
  • the location of the copy source content is indicated by the absolute path to the directory where the content for mobile terminals is recorded. For example, “/ mnt / bdrom / EMOVE / DATA01” or the like. In this case, “/ mnt / bdrom” corresponds to the mount point of the BD-ROM media.
  • the URL indicating the server on the global network is designated as the URL of the digital copy server 36. For example, “http: //xxx.yyy.zzz”.
  • the copy destination media is specified from the list of copy destination media supported by the playback device.
  • a list in the form “ ⁇ media type> _ ⁇ number>” is sent. For example, if the playback device supports both the SD card slot and the USB memory slot one by one, the list “SD_1 USB_1” is sent. If there is no SD card slot and there are two USB memory slots, the list "USB_1 USB_2" will be sent.
  • the BD-J application presents the list to the user, receives the user's instruction as to which media to copy, and designates the medium selected by the user as the copy destination medium. .
  • BCManager # setServerURL (URL) API is an API for setting the URL of the digital copy server 36 to the digital copy module 35.
  • BCManager # setSourceLocation is an API for setting the content location of the copy source to the digital copy module 35.
  • the content position is indicated by an absolute path to a directory in which content for mobile terminals is recorded (for example, “/ mnt / bdrom / EMOVE / DATA01”).
  • BCManager # setOutputDevice (device) is an API for setting a copy destination medium to the digital copy module 35.
  • the copy destination medium is selected from the media list acquired by BCManager # getDeviceList ().
  • BCManager # setSerialId (byte []) is an API for setting a serial ID in the digital copy module 35.
  • the remaining copy count check phase consists of an API call that calls the BCManager # checkTicket from the BD-J application, and an inter-application communication called event throw for that call.
  • BCManager # checkTicketAPI is an API for requesting the digital copy module 35 to check the remaining number of copies.
  • the digital copy module 35 makes an inquiry about the number of remaining copies to the digital copy server 36 using the currently set parameters.
  • the obtained remaining copy count is returned to the BD-J application as an instance of the BCCheckResponse class.
  • the BD-J application can check the number of remaining copies by calling BCCheckResponse # remainingTimesOfCopy (). If the remaining copy count remains one or more times, BCReadyEvent is notified to the BD-J application.
  • the copy start phase consists of an API call that calls the BCManager # makeCopyAPI from the BD-J application, and an inter-application communication called event throw by the digital copy library for that call.
  • BCManager # makeCopyAPI is an API for requesting the digital copy module 35 to start copying. After the on-media library 28 requests the digital copy module 35 to start copying, a BCProgress instance indicating the progress status is returned to the BD-J application, and the copy processing is performed asynchronously in the digital copy module 35.
  • the copy progress confirmation phase consists of an API call that the BD-J application calls BCProgress # remainingAPI, an event throw by the digital copy library for that call, an API call that the BD-J application calls BCProgress # totalAPI, and its It consists of inter-application communication called event throw by the digital copy library.
  • BCProgress # total () is an API for obtaining the total number of copy bytes copied so far.
  • BCProgress # remaining is an API for acquiring the number of remaining copy bytes (in FIG. 14, 524288000 (byte) is returned as an example of the number of remaining copy bytes as a response to the call to BCProgress # remaining (). ing).
  • BCTransferredEvent is notified to the BD-J application.
  • the key write phase consists of an API call that the BD-J application calls BCManager # finalizeBCAPI, and an inter-application communication called event throw for that call, an API call that the BD-J application calls BCManager # cancelCopy, and its call Event call, an BD-J application calls an API call that calls BCManager # closeAPI, and an inter-application communication called an event throw that throws BCManager or UnsupportedOperationException by the digital copy library for that call.
  • BCManager # finalizeBC () is an API for requesting the digital copy module 35 to write a decryption key.
  • BCCompleteEvent is notified to the BD-J application.
  • BCManager # cancelCopy is an API for canceling the copy process of the digital copy module 35. If cancellation is successful, BCCancelEvent is notified to the BD-J application.
  • BCManager # close () is an API for releasing resources reserved by the digital copy module 35 and terminating the digital copy process.
  • FIG. 15 is a diagram showing state transition of the digital copy module 35.
  • the digital copy module 35 changes the following nine states according to the progress of the digital copy process. Circles in this figure schematically show states that the digital copy module 35 can take, and arrows indicate events that should trigger state transitions. The annotation attached to this arrow is the specific name of the event that triggers the state transition.
  • NOT_INIT This state indicates that the digital copy module 35 has not been initialized yet. This state is the initial state of the digital copy module 35 when the BD-ROM is loaded.
  • BCManager # close () in another state to end the digital copy process, the digital copy module 35 returns to the NOT_INIT state again.
  • BCManager # initializeBC () is called in this state, the state transits to the INITIALIZED state, and BCInitializedEvent is notified to the BD-J application.
  • This state indicates that the digital copy module 35 is initialized and the function of the digital copy process can be called from the BD-J application.
  • the BD-J application sets the necessary parameters (for example, the URL of the digital copy server 36 set by calling BCManager # setServerURL (URL), the source of the copy source set by calling BCManager # setSourceLocation (File srcdir) Set the location, copy destination media set by calling BCManager # setOutputDevice (device), serial ID set by BCManager # setSerialId (byte []), call BCManager # checkTicket () and the number of remaining copies is 1 If it remains more than once, it transitions to READY state, and BCReadyEvent is notified to the BD-J application.
  • BCManager # setServerURL URL
  • the source of the copy source set by calling BCManager # setSourceLocation File srcdir
  • Set the location copy destination media set by calling BCManager # setOutputDevice (device), serial ID set by BCManager # set
  • TRANSFERRING This state indicates that data copy of the protected content for the mobile terminal has started.
  • the state transits to the TRANSFERRED state, and BCTransferredEvent is notified to the BD-J application. If BCManager # cancelCopy () is called before the data copy is completed, the data copy is canceled, transitions to the CANCELED state, and BCCancelEvent is notified to the BD-J application. If an error occurs due to the removal of the copy destination medium during data copying, etc., the state transits to the STOPPED state, and BCStopByErrorEvent is notified to the BD-J application.
  • FINALIZING This state indicates that the decryption key is acquired from the digital copy server 36 and the decryption key acquired to the copy destination medium is being written. Once in this state, the BD-J application cannot be canceled by calling BCManager # cancelCopy (), and the cancellation request is rejected. If an error occurs due to removal of the copy destination medium while the decryption key is being written, etc., the state transits to the STOPPED state, and BCStopByErrorEvent is notified to the BD-J application. When writing of the decryption key is completed, the digital copy module 35 transitions to the COMPLETED state, and BCCompleteEvent is notified to the BD-J application.
  • COMPLETED This state indicates that the data copy of the protected content for the mobile terminal and the writing of the corresponding decryption key have been completed, and the digital copy process has been successful.
  • BCManager # initializeBC () is called in this state, the state transits again to the INITIALIZED state, and BCInitializedEvent is notified to the BD-J application.
  • CANCELED This state indicates that the data copy of the protected content for mobile terminals was canceled halfway. Data that has already been copied is cleared at the time of transition to the CANCELED state.
  • STOPPED This state indicates that data copy or decryption key writing failed due to an error.
  • the cause of the error is insufficient space, copy destination media is write-protected, so writing is not possible, copy destination media is removed midway, copy destination media is damaged, and an I / O error has occurred. Etc. are considered.
  • Detailed information on the cause of the copy failure is recorded in the BCStopByErrorEvent instance that occurs when the STOPPED state transitions, and the BD-J application can grasp the cause of the error through BCStopByErrorEvent.
  • the above is the content of the API call exchanged between the BD-J application and the on-media library 28 when executing digital copy.
  • the digital copy socket command is sent to the module corresponding to each phase API call.
  • intra-terminal local communication in FIG. 8 is detailed as shown in the sequence diagram of FIG.
  • FIG. 16 is a sequence diagram showing details of the local communication within the terminal, and shows an example of a digital copy socket protocol for exchanging between the on-media library 28 and the digital copy module 35.
  • This sequence is described using a digital copy socket command.
  • an on-media library 28 and a digital copy module 35 are arranged.
  • a plurality of time axes are drawn in the vertical direction. Each time point on the time axis is the timing of transmission and reception of commands and responses. The commands and responses shown in this figure go back and forth between these time axes.
  • This sequence consists of b. Initialization phase, c. Copy destination status confirmation phase, d. Parameter set phase, e. Remaining copy count confirmation phase, f. Copy start phase, g. Copy progress confirmation phase, h. Consists of.
  • FIG. 16 illustrates an example in which the playback device is configured to support only an SD card slot.
  • the initialization phase consists of command-response communication that sends a REQUEST_INITIALIZE command and receives a response (SD_1), command-response communication that sends a GET_ASYNCPORT command, and receives a response.
  • the REQUEST_INITIALIZE command is a socket command that is issued when BCManager # initializeBC is called from the BD-J application. If an initialization request for the digital copy module 35 is made and a port number used for communication with the digital copy module 35 is specified, this command is transmitted to that port.
  • the digital copy module 35 When the digital copy module 35 receives the character string REQUEST_INITIALIZE through the open port, it determines that an initialization request has been made, and parameters (for example, the URL of the digital copy server 36 previously set, the source location of the copy source). In order to notify that the initialization has been completed after opening the asynchronous event port for clearing the status of the copy destination media (output device, serial ID) and status transition, through the port that received the socket command, Send the string OK. When the on-media library 28 receives the character string “OK” from the port that has sent the socket command, the on-media library 28 considers that the initialization is completed.
  • the GET_ASYNCPORT command is a command for acquiring a port number opened for asynchronous notification for state transition notification.
  • the digital copy socket protocol is composed of two types of ports, one for the digital copy socket command ( Synchronous command), and the other is for state transition notification (asynchronous event) of the digital copy module 35.
  • the port for the digital copy socket command is exchanged by throwing a command from the on-media library 28 to the digital copy module 35, but the port for notifying the state transition is unilaterally from the digital copy module 35 to the on-media library 28. The event is notified.
  • BCManager # addBCStateChangeListner When BCManager # addBCStateChangeListner is called from the BD-J application, the on-media library 28 starts monitoring the state transition notification port, and converts the state transition notification sent from the digital copy module 35 into an event of the on-media library 28 API. The status transition is notified to the BD-J application.
  • the copy destination status confirmation phase includes command / response communication that sends a GET_DEVICELIST command and receives a response (SD_1), command that sends a GET_DEVICEINFO_SD command, and receives a response ( ⁇ total space> ⁇ free space>). Consists of response type communication.
  • the GET_DEVICELIST command is a command for requesting a list of supported media to the digital copy module 35, and a list of media supported by the playback device as a copy destination by calling BCManager # getDeviceList from the BD-J application. Is requested, the command is transmitted to the on-media library 28.
  • the response to the GET_DEVICELIST command is a list of supported media and is returned through the socket command port.
  • the list of supported media is returned in the form ⁇ media type> _ ⁇ number>. If multiple media are supported, each is separated by a space character (eg SD_1 ⁇ sp> USB_1, ⁇ number> sp> is a space character).
  • FIG. 16 shows an example in which SD_1 is returned as a response when the playback device supports only the SD card slot, for example.
  • the GET_DEVICEINFO command can specify the media type in its argument, and changes the total capacity and free capacity of the specified type of media as a response.
  • BCOutputDevice # getTotalSpace or BCOutputDevice # getFreeSpace is called from the BD-J application and the provision of information on the total capacity and free capacity is requested
  • the on-media library 28 sends a GET_DEVICEINFO command to the digital copy module 35 through the socket command port, Receive information on total capacity and free capacity. Leave a space between the command name and the argument. For example, when requesting information on SD_1 (type: SD card, number: 1), the character string GET_DEVICEINFO ⁇ sp> SD_1 is sent to the digital copy module 35 through the socket command port.
  • the parameter set phase consists of sending a SET_SERVERURL command and receiving a response (OK), a command / response communication, sending a SET_SRCLOCATION command, receiving a response (OK), a command / response communication, sending a SET_OUTPUTDEVICE command Command-response type communication of response reception, transmission of SET_SERIALID command, and command-response type communication of response reception.
  • a value is transmitted from the on-media library 28 to the digital copy module 35 through a digital copy socket command, and the parameter is set in the digital copy module 35.
  • the remaining copy count confirmation phase consists of command-response communication that sends a REQUEST_CHECKTICKET command and receives an OK ⁇ remaining times of copy> response.
  • the REQUEST_CHECKTICKET command is a command for inquiring about the remaining copy, and the number of remaining copies is notified as a response.
  • BCManager # checkTicket () is called from the BD-J application
  • the on-media library 28 sends a REQUEST_CHECKTICKET command to the digital copy module 35.
  • the digital copy module 35 extracts the content ID, serial ID, and media ID based on the set parameters, and sends these three values to the digital copy server 36 to check the remaining copy count.
  • the number of remaining copies obtained from the digital copy server 36 is passed to the on-media library 28 as a return value of the REQUEST_CHECKTICKET command.
  • the copy start phase consists of command-response type communication that sends a REQUEST_COPY command and receives a TRANSFERRED response.
  • the REQUEST_COPY command is a command to start copying SD-Video content.
  • BCManager # makeCopy () is called from the BD-J application
  • the on-media library 28 sends a REQUEST_COPY command to the digital copy module 35 to start copying. Request. If the digital copy module 35 confirms that the remaining copy count is 1 or more, the digital copy module 35 starts data copy and returns OK as the return value of the REQUEST_COPY command.
  • the copy progress confirmation phase consists of command-response type communication that sends a GET_PROGRESS command and receives a TRANSFERRED response.
  • the GET_PROGRESS command is a command for acquiring the total number of copy bytes and the remaining number of bytes. If BCProgress # remaining () or BCProgress # total () is called from the BD-J application during data copy, the on-media library 28 sends a GET_PROGRESS command to the digital copy module 35, and the digital copy module 35 makes a total copy. Get the number of bytes and the number of remaining bytes, and return the values to the BD-J application. When the data copy is completed, the digital copy module 35 transits to TRANSFERRED, and the on-media library 28 is notified of the transit to TRANSFERRED through the asynchronous event port.
  • the key write phase consists of command-response communication that sends a REQUEST_FINALIZE command and receives an OK response, FINALIZING response, and COMPLETED response.
  • the REQUEST_FINALIZE command is a command for taking out the content ID, serial ID, media ID, and MKB and sending these four values to the digital copy server 36 to obtain a decryption key.
  • BCManager # finalizeBC () is called from the BD-J application after the data copy is completed
  • the on-media library 28 sends a REQUEST_FINALIZE command to the digital copy module 35.
  • the digital copy module 35 extracts the content ID, serial ID, media ID, and MKB based on the set parameters, and sends these four values to the digital copy server 36 to obtain a decryption key.
  • the digital copy module 35 writes the obtained decryption key to the protected area of the secure memory card 104 that is the copy destination medium, and when the writing process is completed, the digital copy module 35 transits to the on-media library 28 through the asynchronous event port to COMPLETED. Notify that.
  • the above is the contents of the digital copy socket protocol exchanged between the on-media library 28 and the digital copy module 35.
  • all commands and event notifications exchanged between the on-media library 28 and the digital copy module 35 are performed by local communication (socket communication using a port) in the playback apparatus.
  • local communication ocket communication using a port
  • global communication is performed between the digital copy module 35 and the digital copy server 36.
  • FIG. 17 is a flowchart showing a processing procedure from function confirmation to initialization by the BD-J application.
  • step S1 it is determined whether or not the system property “digitalcopy.port” exists. If the system property “digitalcopy.port” exists, socket connection is performed using the port indicated by the system property “digitalcopy.port” (step S2).
  • step S3 If the system property “digitalcopy.port” does not exist, socket connection is performed using a private port or a free port (step S3). Thereafter, BCManager # getINstanceAPI is called (step S4), and it is determined whether or not BCManager is returned in step S5. If it is returned, BCManager # addBCStateChangeListnerAPI is called (step S6), and BCManagerinitialize is called (step S7). It is determined whether a BCInitialized event has been thrown (step S8). If step S5 and step S8 are Yes, it determines with digital copy being possible. If either step S5 or step S8 is No, it is determined that digital copying is impossible.
  • FIG. 18 shows a processing procedure from copy destination status confirmation to parameter set.
  • BCManagergerdeviceListAPI is called (step S31), and the device list “A Array of Supported devices” is awaited (step S32). If the process returns, it is determined whether or not the secure memory card 104 exists in the support device (step S33). If the secure memory card 104 does not exist, the process is interrupted. If it exists, a list of the slots of the secure memory card 104 is displayed (step S34), and the selection of the slot by the user is awaited (step S35). If slot i is selected, BCOutputDevice # getFreeSpaceAPI specifying slot i as an argument is called in step S36 (step S36), and the remaining size is waited for return in step S37.
  • step S38 determines whether the remaining size is larger than the expected size of the SD_VIDEO directory. If it is smaller, the process proceeds to step S35 to prompt selection again. If Step S38 is Yes, a GUI prompting the input of the serial ID is displayed in Step S39, the input of the serial ID is waited in Step S40, and the copy source storage directory is selected in Step S41. If entered, a call is made to BCManagersetServerURLAPI, BCManagerSourceLocationAPI, BCManagersetOutputDeviceAPI, BCManagersetSerialIDAPI (step S42) to determine whether a success is returned for these API calls.
  • FIG. 19 is a sub-flowchart showing details of the copy source storage directory selection procedure.
  • a list of stream formats corresponding to a plurality of copy source storage directories under the EMOVE directory of the BD-ROM is displayed (step S51), and an operation of selecting which stream format is received from the user (step S52). If such a selection is made, / mnt / bdrom / EMOVE / DATAxx which is the file path of the copy source storage directory xx corresponding to the selected stream format xx is specified (step S53). Then, a BCManagerBCSetServerURL call is generated with the specified file path / mnt / bdrom / EMOVE / DATAxx as an argument (step S54).
  • the device-specific function transmits the content IDxx, the serial ID, and the media IDy to the server, thereby confirming the remaining number of copies of the protected content copy for the mobile terminal, and obtaining the decryption key.
  • the combination of the content IDxx, serial ID, and media IDy is transmitted to the server.
  • the digital copy target can be arbitrarily selected from any of various types of protected content for portable terminals such as VGA format and one-segment format.
  • protected contents for various portable terminals having different formats are recorded in advance on the read-only medium 105 and are used for digital copying, so that the protected contents for portable terminals of any stream format can be used without transcoding. Can be copied to the secure memory card 104.
  • FIG. 20 is a flowchart showing a processing procedure from confirmation of the remaining number of copies by the BD-J application to key writing. It is determined whether BCManagercheckTicketAPI is called (step S11), a BCReady event is issued (step S12), and a response is made (step S13). In step S14, it is determined whether or not the remaining number of copies is one or more. If it is one or more, BCManagerMAKE is called (step S15), and BCProgress is returned (step S17). Thereafter, in step S25, after displaying the progress graph (step S25), the loop of step S18 to step S21 is performed.
  • This loop calls BCProgress # remaingAPI (step S18), receives the remaining number of bytes (step S19), determines whether the remaining number of bytes has become 0 (step S20), and sets the remaining number of bytes. Accordingly, the process of updating the progress bar (step S21) is repeated until step S20 is determined as Yes.
  • Step S22 waits for reception of whether or not a BCtransferredEvent has been received. If received, BCManagerfinalizeBCAPI is called (step S23) to wait for reception of a BCComplete event. If received, the process is terminated.
  • FIG. 21 is a diagram illustrating an example of a display screen displayed in the process of digital copying.
  • FIG. 21A shows an example of a list display of secure memory card 104 slots. It consists of buttons corresponding to the slots 1 to 3, respectively.
  • FIG. 21B shows an input screen for inputting a numeric value of a serial ID and selecting a stream format.
  • FIG. 21C shows a GUI for displaying the copy progress. The menus shown in FIGS. 21A to 21C are displayed by the copy management BD-J application and involve playback of the video stream included in the main content. Using goods related to the content, it is possible to create a gorgeous screen effect.
  • FIG. 22 is a flowchart showing the processing procedure of the digital copy module 35.
  • step S61 reception of REQUEST_INITIALIZE is waited (step S60). If REQUEST_INITIALIZE is received (step S61), the set current serial ID, source location, current server URL, output device, and resume position are reset. Then, it waits for reception of GET_DEVICELIST (step S62), and if it is received, senses the status of the drive that is enabled in the playback device (step S63). Then, a device list indicating the drive status is generated in association with each slot number and returned as a response (step S64). Step S65 is waiting for reception of set parameters for the current URL, source location file path, output device, and serial ID.
  • step S66 the set parameter command operands are the current server URL, source location, output device, and serial ID.
  • Step S67 is waiting for reception of CHECK_COPY_REQUEST.
  • step S68 content IDxx is extracted from EMOV_INF of / mnt / bdrom / EMOVE / DATAxx which is the current source location.
  • MIDy is taken out from the secure memory card 104 loaded in the current output device y (step S69), the content IDxx, MIDy, and serial IDz are set in the server and a search for the remaining number of copies is requested ( Step S70). After that, the process waits for reception of the remaining number of copies (step S71).
  • Step S73 is waiting to receive COPY_REQUEST. If COPY_REQUEST is received, the SD_VIDEO directory, the MNG_INFO directory, and the PRG001 directory are created in the secure memory card 104 (step S74), and the MGR_DATA and PRG_MGR in the DATAxx directory are read and the MNG_INFO directory is read out. Is written (step S75), and PRG001 and PGI in the DATAxx directory and stream files related thereto are read and written in the PRG001 directory (step S76).
  • FIG. 23 is a continuation of the flowchart of FIG.
  • the loop of step S77 and step S78 constitutes reception waiting of whether COPY_PROGRESS has been received (step S78) or whether writing has been completed (step S79). If COPY_PROGRESS is received, the total size / remaining size is returned as a response (step S85). If the writing is completed, the reception of REQUEST_FINALIZE is waited in step S79. If REQUEST_FINALIZE is received, MKBy is read from the secure memory card 104 loaded in the current output device y (step S80), content IDxx, media IDy, MKBy and serial IDz are transmitted to the server, and a search for the title key is requested (step S81).
  • Step S82 is waiting to receive a decryption key. If the decryption key is received, mutual authentication is performed with the secure memory card 104 in step S83, and then the decryption key is placed in the protected area of the secure memory card 104 in step S84. Write the stored VIDEO001.KEY.
  • the user is allowed to input the serial ID and select the stream format through the interactive screen, and in response to this, the portable terminal specific to the stream format recorded in advance on the BD-ROM Since the protected content for mobile terminals is written in the secure memory card 104 at an early stage, it can be taken out outdoors.
  • the built-in library 25 includes a basic package such as Java2Micro_Edition (J2ME) MEPersonal Basis Profile (PBP 1.0), Globally Executable MHP specification (GEM1.0.2) for package media targets, and an extension package.
  • J2ME Java2Micro_Edition
  • PBP 1.0 Globally Executable MHP specification
  • GEM1.0.2 Globally Executable MHP specification
  • java.net for network processing
  • java.awt for GUI processing
  • java.lang for language processing
  • java.io for I / O processing for recording media BD-J applications
  • classes such as java.util, a utility, and javax.media for the media framework.
  • BD-J extension consists of the following libraries.
  • TM “org.bluray.media” for realizing unique functions using multi-pass playlist information that Media FrameWork does not have, ⁇ "Org.bluray.ti” for mapping and operating application signaling based on “services” implemented on the home platform of digital broadcasting services to "titles”, for managing the life cycle of applications "Org.bluray.application”, ⁇ "Org.bluray.ui” to define constants for key events and realize synchronization with video playback, ⁇ ⁇ Org.bluray.vfs '' to mount content on local storage (off-disc content) not recorded on BD-ROM onto content recorded on BD-ROM (on-disc content)
  • These libraries include in-lid methods from methods of the java.net, java.awt, java.lang, java.io, java.util, and
  • BD-J titles can be extended on the extension of programming techniques using the java.net, java.awt, java.lang, java.io, java.util, and javax.media classes. Can be created.
  • FIG. 24 schematically shows functional components defined by the BD-J extension.
  • FIG. 24 is a diagram showing a more specific configuration of the built-in library 25 in the platform unit 20 shown in FIG.
  • the BD-J extension of the built-in library 25 in the platform unit 20 includes a merge management module 41, a media playback module 42, a file I / O module 43, and a network module 44.
  • the playback control unit 10 and the device-specific function control unit 33 in this figure are the same as those shown in FIG. 4 and are described for convenience.
  • the merge management module 41 integrates the BD-ROM and the local storage as one virtual file system.
  • the virtual file system assigns a file path for alias access to the file on the file system in each storage medium of local storage, and executes file access using the file path for alias access as a locator to the application.
  • the mount rule file is specified as an argument, and the application calls the virtual package create API to generate the virtual package in the virtual file system.
  • the virtual package created by such a call indicates a file structure in which another file other than the file on the BD-ROM is added, or a file structure in which any of the files on the BD-ROM is replaced with another file.
  • the entity of the virtual package is file management information indicating the file configuration after the addition of the file and / or the file configuration after the replacement of the file.
  • the file management information read from the BD-ROM to the memory is included in the file management information. It can be obtained by adding a new file entry or replacing a part of the file entry in the file management information read into the memory with another file entry.
  • the mount rule file is a description of the correspondence between a file path in local storage and a file path for alias access using a markup language tag.
  • the alias access file path given to the file on the local storage is a combination of the BDMV directory on the BD-ROM and any one of the CLIPINF directory, PLAYLIST directory, and STREAM directory.
  • the file on the virtual package can be specified by the locator for the BD-ROM. If the file on the local storage is recorded on the BD-ROM, Can be handled as follows.
  • the media playback module 42 provides an API for media playback control to the bytecode application.
  • the media playback module calls the corresponding AV playback library function to perform AV playback control.
  • the file I / O module 43 processes a file access request to each medium such as a BD-ROM, a local storage, and a recordable BD drive from a bytecode application.
  • the network I / O module 44 provides an API for network control to the bytecode application. Network connection is performed using the network I / O module 44 in accordance with a network control request from the bytecode application.
  • the network I / O module 44 realizes connection with a server on the Internet.
  • One of the protocol stacks of TCP / IP and UDP / IP is supported, and the ability to use the HTTP protocol is a requirement of the network I / O module.
  • the physical connection may be different for Ethernet (registered trademark) and telephone.
  • the platform Before using the network connection, the platform must be authenticated and must have the appropriate permissions for the network connection. This completes the description of the BD-J extension in the built-in library 25. Next, features of the on-media library 28 based on the BD-J extension of the built-in library 25 will be described.
  • the on-media library 28 in this embodiment is a “digital copy library” dedicated to protocol analysis, and is an API (digital copy library API) as if the BD-JAPI, which is a playback control API, is extended to a bytecode application. )I will provide a.
  • the protocol used for data transmission / reception with the digital copy module 35 is not dependent on the individual bytecode application, but the details are hidden in the digital copy library, and is a common protocol for a plurality of bytecode applications. Is defined. With this configuration, the bytecode application does not need to analyze the protocol used for data transmission / reception with the digital copy module 35, and the protocol analysis can be centrally managed by the library. Can be improved.
  • the on-media library 28 is defined by an archive file, but the permission request file in the digital copy library permits socket communication between the bytecode application and the local host.
  • a secure memory card 104 can be used for such local storage.
  • FIG. 25 is a diagram showing a directory structure in the secure memory card 104 used as the local storage.
  • the user area is further divided into two types, an additional content area and an SD video area.
  • the additional content area stores contents that are used supplementarily during BD-ROM playback
  • the SD video area stores SD video-compliant contents (step SD video contents) that are mainly intended for playback on mobile terminals.
  • Both the additional content area and the SD video area exist directly under the root directory on the user area of the local storage. This is a fixed value (BUDA) within the directory name distribution medium characters indicating the additional content area. Under this BUDA directory (including subdirectories and files below it), the application can store arbitrary files such as additional files downloaded from the server.
  • BUDA fixed value
  • the directory name indicating the SD video area is SD_VIDEO and, like the additional contents area, exists directly under the root directory on the user area.
  • SD_VIDEO directory Below the SD_VIDEO directory is an SD video content directory (“PRGxxx”, “xxx” is variable) divided into SD video content and an SD video management directory (“MGR_INFO”) that stores management files for the entire SD video area.
  • PRGxxx “xxx” is variable
  • MGR_INFO SD video management directory
  • a decryption key (VIDEO001.KEY) for decrypting encrypted protected content for mobile terminals is recorded on the protected area that cannot be accessed by the user. Access to the decryption key is only possible for systems that support copyright protection.
  • the media key block in which the key information necessary for generating the decryption key is recorded and the SD memory allocated to the local storage.
  • a medium ID (MID) that is an identifier for uniquely identifying a medium such as a card for each medium is recorded.
  • Media IDs are assigned different values for each medium even for the same type of media.
  • the digital copy module 35 determines whether the device list is a secure memory card 104 used as a local storage. Return as a response.
  • the digital copy management BD-J application that performs copy management, when the secure memory card 104 is used as a local storage, does not eject the secure memory card 104 during the construction of the virtual file system. More specifically, a warning can be displayed so as not to eject the secure memory card 104 during the reproduction of the title in the virtual package constructed by the virtual file system.
  • the secure memory card 104 used as the local storage is selected as the copy destination of the protected content for the mobile terminal while paying attention not to destroy the virtual file system. Therefore, the utilization efficiency of the recording medium is increased.
  • FIG. 26 is a diagram showing signature verification of a conventional application.
  • the validity of the bytecode application is verified by verifying the signature based on the digital signature recorded in the archive file constituting the bytecode application and the root certificate (discroot.crt) on the disk. . Specifically, check whether the hash value obtained by decrypting the digital signature in the archive file based on the root certificate matches the hash value of the individual class files that make up the archive file. If so, the archive file is valid, and if it does not match, it is considered that there was some kind of fraud.
  • this verification method if both the root certificate and the digital signature in the archive file are paired, the verification is passed, so that the content provider holding the valid root certificate illegally deletes the archive file.
  • the playback device's unique functions are released, all content providers who have a valid root certificate are free Thus, the unique function of the playback device can be used.
  • FIG. 27 is a diagram showing signature verification based on a digital certificate held by the playback apparatus.
  • the digital signature based on the digital certificate unique to the playback device is also given in the Jar file constituting the bytecode application.
  • the hash value of the manifest file (MANIFIEST.MF) that lists the hash values of the individual class files stored in the Jar file is encrypted with the private key corresponding to the digital certificate unique to the playback device.
  • the recorded value is recorded in the Jar file as a digital signature unique to the playback device.
  • signature verification based on a certificate unique to the playback device is also performed.
  • FIG. 28 is a diagram showing functional restrictions according to the result of signature verification.
  • a digital signature based on a conventional root certificate is not sufficient, and a digital signature unique to the playback device must be prepared. Since a digital signature unique to a playback device cannot be created without a private key corresponding to the certificate unique to the playback device, a third party illegally prepares a digital signature unique to the playback device and exploits the playback device-specific functions. Can be prevented.
  • the verification of the digital signature unique to the playback apparatus fails, there is no influence on the conventional calling of the common function, so that compatibility can be maintained for the common function portion.
  • FIG. 29 is a flowchart of processing at the time of a connection request in order to use a device-specific function. This flowchart corresponds to step S103 in the first embodiment, and is different in that it is enhanced in terms of security.
  • the digital copy module 35 determines whether or not a device-specific digital signature is assigned to the bytecode application that is requesting connection (step S201). If the digital signature unique to the device is not given, the connection request is rejected, and the playback device does not respond to requests via the subsequent communication port, or the port may be closed and any communication may be rejected. . If it is determined in step S201 that a device-specific digital signature has been assigned, the playback device acquires a hash value of each class file (step S202).
  • step S203 the device-specific digital signature attached to the bytecode application is decrypted using the unique digital certificate possessed by the playback device, and a hash value written in the digital signature is derived (step S203). If the hash values acquired in step S202 and step S203 match, it is determined that the digital signature has been correctly assigned. If not, it is determined that the digital signature is an illegal digital signature (step S204). ). If it is determined that the digital signature is illegal, the function call unique to the playback device via the communication port is not accepted at all, as in the case where the digital signature is not assigned in step S201.
  • an encrypted communication path is generated (step S205). Specifically, the digital certificate of the playback device is sent to the bytecode application, and the bytecode application creates an encrypted communication socket (SSL socket) with the sent digital certificate.
  • SSL socket an encrypted communication socket
  • a normal socket for example, a socket command and its response
  • data is exchanged unencrypted.
  • an SSL socket is exchanged by encrypting with a sent digital certificate. That is, all data exchanged between the playback device and the bytecode application via the communication port is encrypted on the communication path.
  • the playback device verifies the digital signature given to the bytecode application
  • the bytecode application verifies the server certificate sent from the playback device
  • the exchange of data via the communication port is encrypted by SSL. Therefore, it is possible to eliminate an illegal bytecode application and an illegal playback device, and to prevent an attack from a hacker who illegally acquires and uses data on a communication path.
  • FIG. 30 is a diagram illustrating an example in which content is viewed halfway on the playback device and viewed on the mobile terminal from the middle. Assuming that you want to enjoy the content that you enjoyed watching on a TV with a stationary playback device at home, etc., when you want to enjoy it when you go out, playback does not start from the beginning again when you play it on your mobile device. It is desirable to start playback from the continuation. In this case, it is necessary to copy not only the content but also the reproduction position information when performing digital copy. In the SD video format recorded on the SD memory card, the playback position information indicating the resume position can be recorded in the SD video management file “MGR_DATA”. This use case can be realized by recording in the SD video management file during digital copying.
  • FIG. 31 is a flowchart of data copy in the seventh embodiment.
  • step S301 When copying the protected content for the portable terminal to the designated copy destination medium, it is determined whether or not there is designation for recording the reproduction position information (step S301).
  • the recording designation of the reproduction position information is made by notifying the digital copy module 35 from the bytecode application via the digital copy socket command communication port.
  • the user is inquired about the reproduction position information copy by the bytecode application.
  • the digital copy module 35 determines whether or not the playback position information is designated in advance by the bytecode application when copying the data. If there is no recording designation of the playback position information, the digital copy module 35 moves the SD video management file. Without adding, the data is copied as it is. If it is determined in step S301 that recording designation of reproduction position information has been performed, it is determined whether or not a reproduction time to be recorded is designated from the bytecode application (step S302). For example, if the playback device has already been viewed for 30 minutes, the value to be delivered is 1,800,000 (msec).
  • step S303 If the reproduction time is designated and the value is valid, the designated time is written in the SD video management file (step S303). If it is determined in step S301 that the recording designation of the reproduction position information has been received, but it is determined in step S302 that the time is not designated, it is determined whether or not the reproduction time is recorded in the player register (step S304). ). Since the playback device has a plurality of registers, one of which is assigned for resume playback, the value of the register assigned for resume playback is confirmed. If a valid playback time is recorded in the resume playback register, the value is written in the SD video management file (step S305).
  • step S306 If there is no valid time specification from the bytecode application and no valid playback time is recorded in the register even though the recording specification of the playback position information has been received, the SD video management file The data is copied as it is without changing anything (step S306).
  • FIG. 32 is a diagram showing a digital copy in a recording medium having the same copy source and copy destination.
  • the protected content for the target mobile device does not exist on the BD-ROM, and the bytecode application is protected from the server via the external network to the protected content for the mobile device. Can be downloaded.
  • the bytecode application cannot be downloaded directly to the video content area.
  • the area that the bytecode application can freely access is only under the same Organization directory as the Organization to which the application belongs. The range of access is determined in this way in order to prevent another Organization content from being extracted or deleted without permission.
  • the bytecode application when the bytecode application additionally downloads the protected content for the portable terminal, first, the bytecode application is temporarily stored under the Organization directory. Then, the procedure is such that the digital copy content stored in the Organization directory is moved to the video content area by calling a terminal-specific function via local communication within the terminal.
  • FIG. 33 is a flowchart corresponding to digital copying in a recording medium in which the copy source and the copy destination are the same.
  • step S101 the step of confirming whether the protected content for the portable terminal exists on the inserted disc, which has been performed in step S101, is not necessary.
  • the protected content for the target mobile terminal may be recorded on the local storage even if the protected content for the mobile terminal does not exist on the disc.
  • the storage location of the protected content for mobile terminals that is to be copied is an absolute path that includes the media type. For example, if it is on BD-ROM, the specified absolute path will be "/ mnt / bdrom / EMOVE / DATA01" etc. If it is on local storage (secure memory card 104 etc.), "/ mnt / sdcard / BUDA / 081A24ED / 12345ABC / EMOVE / DATA01 ”etc. In this case, “/ mnt / bdrom” corresponds to the mount point of the BD-ROM medium, and “/ mnt / sdcard” corresponds to the mount point of the secure memory card 104.
  • the digital copy module 35 can determine on which medium the protected content for the portable terminal to be copied is located.
  • the copy target position information acquired in step S401 and the media type that can be determined from the position information are used for comparison with the media type selected in step S107 (step S402).
  • step S401 the copy source medium
  • step S107 the medium specified in step S107
  • step S404 the digital copy module 35 moves the copy target designated in step S401 to the video area in the same medium. In the case of a move in the same medium, actual data copying is unnecessary, and only the management information of the file needs to be rewritten. Therefore, the progress display to the user by the bytecode application may be skipped.
  • the protected content for the mobile terminal is not recorded in advance on the BD-ROM, the protected content for the mobile terminal is additionally downloaded, and the content is moved in the digital copy processing process.
  • digital copying can be performed.
  • the downloaded destination and the copy destination of the digital copy are the same medium, it is possible to perform copying at high speed without unnecessarily consuming the capacity.
  • an AV file that is a stream file and a non-AV file that is a file other than a stream file are created in real time, and are directly written in the AV data recording area and the non-AV data recording area on the recording medium.
  • the recording medium according to the present embodiment is also specified by a recording method using real-time recording and a recording method using preformat recording.
  • the recording method by preformat recording consists of BD-ROM authoring (1), copyright protection (2), press (3), and packaging of the BD-ROM obtained by the press (4).
  • the digital copy compatible menu production process exists in order to display an interactive control menu for digital copy from the entire BD-ROM menu or title menu. Furthermore, in parallel with the process from BD-ROM authoring (1) to copyright protection (2), the encoding for generating the digital stream that constitutes the protected content for mobile terminals and the digital stream obtained by the encoding are There is a copyright protection process for encryption.
  • the digital copy has been described as an example of a function unique to the playback apparatus.
  • cooperation between a recording function or a distribution service and an application on a recording medium can be considered. That is, the present invention is not limited to digital copying as a function unique to the playback apparatus.
  • the present invention can also be applied to services such as making a recording reservation from an application on a recording medium or downloading in cooperation with a distribution service.
  • the reproducing apparatus having only the reproducing function for reproducing the recording medium has been described, but the present invention is not limited to this.
  • a recording / reproducing apparatus having a recording function may be used.
  • Java (registered trademark) is used as the programming language of the application.
  • B-Shell and the like used in UNIX (registered trademark) OS, not Java (TM) (registered trademark) are used.
  • Other programming languages such as Perl Script and ECMA Script may be used.
  • a BD-ROM or a writable optical recording medium is described as an example of a copy source recording medium.
  • the present invention is not limited to this.
  • an SD memory card, a memory stick, Removable media corresponding to portable recording media such as compact flash, smart media, and multimedia cards may be used.
  • the removable medium used as the copy source is an area (user area) for recording data corresponding to data having a directory structure recorded in the volume area shown in FIG. ), The structure having the protection area and the system area described in FIG.
  • the content for the portable terminal recorded on the copy source removable medium is copied to the copy destination removable medium.
  • the copy source removable medium and the copy destination removable medium are different.
  • a BCA Breast Cutting Area
  • PMSN Pre-recorded Media Serial Number
  • the information (media ID) unique to the copy source removable medium may be read instead of reading the PMSN.
  • the BD-ROM that is the copy source recording medium is replaced with the removable medium, and the serial ID of the BD-ROM that is the copy source recording medium is replaced with the unique ID of the removable medium. If it is read as information (media ID), it will explain the operation when a removable medium is used as the copy source recording medium.
  • the data recorded in the (user area) may be recorded in advance when the removable medium is distributed.
  • key information (title key) for decrypting the encrypted data is included.
  • the decryption key is recorded in advance in the protected area of the copy source recording medium. At this time, it is assumed that the decryption key is encrypted so that it can be decrypted using the MKB of the system area of the copy source recording medium.
  • the device that performs the download request may be performed using the playback device described in this embodiment, or may be performed using a terminal device that performs download different from the present embodiment.
  • the media ID and MKB of the removable media are read out together with the data download request to the distribution server. send.
  • the data corresponding to the decryption key generated using the media ID of the removable media and the MKB is sent to the device that has requested download.
  • the received corresponding data is recorded in the user area of the removable medium, and the received public key file is recorded in the protected area of the removable medium.
  • a decryption key including key information (title key) for decrypting the encrypted data is used to protect the copy source recording medium. Will be recorded in the area.
  • the decryption key is encrypted so that it can be decrypted using the MKB in the system area of the copy source recording medium.
  • removable media can be used as a copy source recording medium.
  • the MKB of the other removable media is different from the MKB of the removable media of the copy source, so the encrypted decryption key cannot be decrypted. Unauthorized use of data recorded in the user area of the copy source removable media can be suppressed.
  • ⁇ List of media> When displaying a list of media, a mark that indicates that there is insufficient free space or that the media has not been inserted is displayed as a mark that indicates that there is insufficient free space or that the media has not been inserted (or Flag).
  • connection URL to the digital copy server 36 may be a fixed URL possessed by the playback device, or may be a URL specified by the bytecode application.
  • the digital copy server 36 may be a different server for each content provider and region. Therefore, it is desirable to connect to the digital copy server 36 using the URL specified from the bytecode application via the communication port.
  • the server certificate that is, the digital certificate that the playback device sends to the bytecode application for creating an SSL socket may be different from the digital certificate used to use the device-specific function.
  • the playback apparatus prepares two types of digital certificates for encrypted communication and for unique functions.
  • the validity of the server certificate sent from the playback device may be verified on the bytecode application side in order to prevent the playback device from being illegal. For example, since there is a possibility that playback devices that can be copied randomly will be available, it is desirable that the bytecode application also verifies the correctness of the playback device.
  • the server certificate sent from the playback device is verified. If the server certificate is on the black list, the playback device can stop the digital copy or the like from being performed on the bytecode application side.
  • the digital copy on the same medium has been described on the premise that the media capacity is unnecessarily consumed and the data copy can be completed in a short time, but there is sufficient free capacity. If it exists or if the size of the content to be copied is small, copying may be performed leaving the original file.
  • byte code used in the description of the embodiments so far assumes, for example, a code having a word length of 2 bytes or less that causes the Java virtual machine to execute operations on the operand stack, local variables, and object arrays.
  • For operations on the operand stack, local variables, and object arrays fetch from the operand stack, accumulation in the operand stack, retrieval of object references from the object array, storage of object references in the object array, method termination, and calling to the caller There are returns, value type conversions, comparisons, addition / subtraction / multiplication / remainder operations on operand stacks, sign inversion, and copy with word insertion. If the program code has such characteristics and can be technically equated with a byte code, such a program code may be used for creating an application.
  • a bytecode application is an instance of a class file.
  • the class file is a structure file having a data structure which is composed of, for example, several blocks, the blocks have a detailed structure, and various data hierarchies can be managed.
  • the detailed structure includes a plurality of constant pools, a plurality of field info, a plurality of method info, and a plurality of attribute info.
  • Attribute info is an abstract class, and its subclass is a subordinate structure of class file, field info, and method info.
  • the code attribute of the attribute info is a method info attribute. This method info defines the programmatic nature of the bytecode application. If the data structure has such characteristics and can be technically equated with the internal structure of the class file, such a data structure may be used for creating a bytecode application.
  • An integrated circuit according to the present invention is a system LSI, and a mechanical part such as a drive unit of a recording medium or an external connector is excluded from a hardware configuration of a playback device, so that a logic circuit or a storage element is obtained.
  • the relevant part, that is, the core part of the logic circuit is incorporated.
  • the system LSI is a package in which a bare chip is mounted on a high-density substrate and packaged. By mounting multiple bare chips on a high-density substrate and packaging them, it is called a multichip module that has multiple bare chips with the same external structure as a single LSI. Included in the system LSI.
  • system LSIs are classified into QFP (Quad-Flood Array) and PGA (Pin-Grid Array).
  • QFP is a system LSI with pins attached to the four sides of the package.
  • the PGA is a system LSI with many pins attached to the entire bottom surface.
  • pins serve as power supply, ground, and interface with other circuits. Since pins in the system LSI have such an interface role, by connecting other circuits to these pins in the system LSI, the system LSI plays a role as the core of the playback device.
  • FIG. 34 is a diagram showing the architecture of an integrated circuit.
  • the architecture of the integrated circuit 70 which is a system LSI includes a front end unit 71, a signal processing unit 72, a back end unit 73, a media I / O 74, a memory controller 75, and a host microcomputer 76. And is connected to a drive, a memory, and a transmission / reception unit in the playback apparatus through a media I / O 74 and a memory controller 75.
  • the drive in the playback device includes a BD-ROM drive, a local storage drive, a removable media drive, and the like.
  • the front-end processing unit 71 includes a preprogrammed DMA master circuit, an I / O processor, and the like, and executes all packet processing.
  • This packet processing includes source packet depacketizer processing by a demultiplexer and PID filter processing.
  • the packet processing as described above is realized by realizing DMA transfer between the track buffer, various plane memories, and various buffers secured in the memory of the playback device.
  • the signal processing unit 72 is composed of a signal processor, a SIMD processor, and the like, and executes signal processing in general. Signal processing includes decoding by a video decoder and decoding by an audio decoder.
  • the back end unit 73 is composed of an adder and a filter, and performs AV output processing in general.
  • the AV output processing includes pixel processing, and image superimposition, resizing, and image format conversion for layer synthesis are performed by the pixel processing. Also, digital / analog conversion and the like are executed together.
  • Media I / O 74 is an interface with a drive and a network.
  • the memory controller 75 is a slave circuit for memory access, and realizes reading / writing of memory of packets and picture data in response to requests from the front end unit, signal processing unit, and back end unit. ⁇ ⁇ ⁇ ⁇ By reading and writing the memory through the memory controller 75, the memory functions as various buffers in a track buffer, a video plane, a graphics plane, and a video decoder.
  • the host microcomputer 76 includes an MPU, a ROM, and a RAM, and performs overall control over the media interface, front end unit, signal processing unit, and back end unit.
  • the overall control includes control as a playback control unit, a byte code processing module, a command processing module, and a mode management module.
  • the CPU in the host microcomputer has an instruction fetch unit, a decoder, an execution unit, a register file, and a program counter.
  • the program that executes the various processes described in the embodiments so far is stored as a built-in program in the ROM in the host microcomputer together with the basic input / output system (BIOS) and various middleware (operation system). Has been. Therefore, the main functions of the playback device can be incorporated in this system LSI.
  • BIOS basic input / output system
  • ⁇ Program embodiment> The program shown in each embodiment can be created as follows. First, a software developer uses a programming language to write a source program that implements each flowchart and functional components. In this description, the software developer describes a source program that embodies each flowchart or functional component by using a class structure, a variable, an array variable, or an external function call according to the syntax of the programming language.
  • the described source program is given to the compiler as a file.
  • the compiler translates these source programs to generate an object program.
  • Translator translation consists of processes such as syntax analysis, optimization, resource allocation, and code generation.
  • syntax analysis lexical analysis, syntax analysis, and semantic analysis of the source program are performed, and the source program is converted into an intermediate program.
  • optimization operations such as basic block formation, control flow analysis, and data flow analysis are performed on the intermediate program.
  • resource allocation in order to adapt to the instruction set of the target processor, a variable in the intermediate program is allocated to a register or memory of the processor of the target processor.
  • code generation each intermediate instruction in the intermediate program is converted into a program code to obtain an object program.
  • the object program generated here is composed of one or more program codes that cause a computer to execute the steps of the flowcharts shown in the embodiments and the individual procedures of the functional components.
  • program codes such as a processor native code and a JAVA byte code.
  • a call statement that calls the external function becomes a program code.
  • a program code that realizes one step may belong to different object programs.
  • each step of the flowchart may be realized by combining arithmetic operation instructions, logical operation instructions, branch instructions, and the like.
  • the programmer When the object program is generated, the programmer activates the linker for these.
  • the linker allocates these object programs and related library programs to a memory space, and combines them into one to generate a load module.
  • the load module generated in this manner is premised on reading by a computer, and causes the computer to execute the processing procedures and the functional component processing procedures shown in each flowchart.
  • Such a program may be recorded on a computer-readable recording medium as a non-transitory computer program and provided to the user.
  • the playback device constituting the present invention can provide a service in which the application program on the recording medium and the unique function of the playback device are linked.
  • it can be used in the movie industry and consumer equipment industry that are involved in the production of video content.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

 再生装置におけるバイトコード処理部は、プラットフォーム部20であり、リードオンリーメディア105からバイトコードアプリケーションを読み出して動作させる。再生装置は、デジタルストリームによるAV再生を制御する再生制御部10、コンテンツに対する制御機能であって、機器固有のものを実行する機器固有機能制御部33を具備している。バイトコードアプリケーションが利用することができるAPIには、再生制御機能のためのAPIと、ソケット通信のためのAPIとがある。バイトコードアプリケーションは、再生制御の実行を再生制御部10に要求する場合、再生制御APIをコールすることで、再生装置の再生制御部に処理を命じる。再生装置の機器固有機能の実行を要求する場合、ソケット通信APIにおける関数のコールを通じて機器固有機能制御部に処理を命じる。

Description

再生装置、記録媒体、再生方法、プログラム
 本発明は、バイトコードアプリケーションの制御技術の技術分野に属する。
 バイトコードアプリケーションとは、オブジェクト指向プログラミング言語のソースコードを用いて記述されたクラス構造体をコンパイルすることで得られた実行形式のプログラムであり、機器に依存しないコード(バイトコード)によって構成されるものをいう。近年の再生装置では、コンテンツ再生のための再生制御のみならず、その他の対話的な制御、追加的な制御を、このバイトコードアプリケーションに実行させることにより、再生装置やコンテンツの付加価値を高めることに成功している。
 こうしたバイトコードアプリケーションに利用させる機能の1つとして、再生装置に実装すべき機能には、以下の特許文献に記載されたコンテンツのコピー機能がある。
特開2010-9407号
 ところで、あるメーカーが、コンテンツを対象とした特殊な機能の開発に成功した場合、その機能を機器固有機能として実装するのがよいのか、標準化機能として実装するのがよいのかの選択に悩むことが多い。
 機器固有機能として実装する場合、装置設定のためのセットアップメニュー等の、装置固有のユーザインターフェイスを通じて、起動できるようにするのが一般的である。しかし、特殊機能を機器固有機能として実装しようとすると、特殊機能を起動するためのユーザインターフェイスは、メーカーが作成したものに制限されるので、コンテンツプロバイダが作成したユーザインターフェイスに比べて貧弱感が否めない。よって、特殊機能の使い方が判りにくいものになり、ユーザメリットが低い。
 これに対して特殊機能を標準化機能として実装する場合、そのような標準化機能を利用した多くのアプリケーションが様々なコンテンツプロバイダによって開発され、市場に投入されると予想される。特殊機能を起動するためのユーザインターフェイスが多種多様なものになり、ユーザは、より判りやすく親しみ易いユーザインターフェイスを通じて、特殊機能を利用することができる。しかし、特殊機能のためのAPIを策定して公開すると、後発メーカーは、何等、研究開発費を投じることなく、同様の機能を具備した製品を開発して市場に投入することができる。先行メーカーは、後発メーカーの激しい追いあげを受けることで、市場での販売シェア獲得競争に敗北してしまうばかりか、研究開発費を回収できず、苦境に立たされるという由々しき事態も考えられる。
 以上の二通りの実装の仕方のそれぞれには、ユーザに対する判りやすさが犠牲になるか、後発メーカーの台頭を許すかというデメリットが存在し、最適解が見出せない。
 本発明の目的は、特殊機能を機器固有機能として再生装置に実装しつつも、当該機器固有機能を利用したアプリケーションを、様々なコンテンツプロバイダに開発させることができる再生装置を提供することである。
 上記目的を達成することができる再生装置は、記録媒体に記録されたコンテンツを再生すると共に、当該コンテンツに対する機能を実行する再生装置であって、
 前記コンテンツに対する機能には、標準化された再生制御機能と、機器固有の機器固有機能とがあり、
 記録媒体からバイトコードアプリケーションを読み出して、動作させるプラットフォーム部と、
 再生制御機能を実行する再生制御部と、
 機器固有機能を実行する固有機能制御部とを備え、
 前記再生装置のプラットフォーム部は、バイトコードアプリケーションが利用可能なプログラミングインターフェイスを有し、前記バイトコードアプリケーションが利用可能なプログラミングインターフェイスは、再生制御用プログラミングインターフェイスと、通信用プログラミングインターフェイスとを含み、
 前記バイトコードアプリケーションは、再生制御用プログラミングインターフェイスをコールすることで、再生制御部に再生制御を命じ、
 通信用プログラミングインターフェイスを用いて固有機能制御部を相手側としたソケット接続を行い、当該ソケット接続を通じて、固有機能制御部に機器固有の制御を命じる
 ことを特徴とする。
 ソケット接続のためのプログラミングインターフェイスは、ネイティブAPIとしてサポートされている機能であるから、機器固有機能制御部に対してソケット接続を行うことで、機器固有機能の実行を機器固有機能制御部に要求すれば、既に標準化されているデジタルストリーム再生制御のためのAPIに対して、追加/改変を加えることなく、アプリケーションに機器固有機能を使用させることができる。既存の再生制御のためのAPIに追加/改変を加えることなく、機器固有機能を使用させるので、特殊機能を利用したアプリケーションが様々なコンテンツプロバイダが開発され、市場に投入されると予想される。その結果、特殊機能を起動するためのユーザインターフェイスが多種多様なものになり、ユーザは、より判りやすく親しみ易いユーザインターフェイスを通じて、特殊機能を利用することができる。
 機器固有機能として実装する限り、後発メーカーの追従を避けることができるから、特殊機能を機器固有機能として実装した製品により、市場を寡占することができる。
 先行メーカーが、コンテンツプロバイダに特殊機能を利用させ、その独自開発に成功したメーカーのみが、ライセンスを、コンテンツプロバイダから得るというもの新たな収益スタイルの確立が容易になり、メーカーによる研究開発に弾みを付けることができる。
 以上が、解決しようとする課題欄で述べた技術的課題の解決を図る技術的思想の創作である。つまり任意的ではあるが、上記再生装置は、以下のような追加的な技術的課題の解決を図るものであってもよい。
 (追加的技術的課題その1)
 特殊機能を標準化機能として実装するにあたって、既に標準化されているAPIの拡張は難しいため、コンテンツ提供者が先行してオリジナリティのある新しいサービスを提供したい場合、再生装置上での独自サービス提供はあきらめる傾向が強い。代替策として、パソコンにインストールして実行するアプリケーションを映画本編とは別のディスクに記録しておき、ユーザにそのディスクをパソコンで実行してもらうことで、独自サービスを提供するという方法が主流になっている。実際に行われているサービス例としては、携帯端末向けデジタルストリームとパソコン用アプリケーションを本編ディスクとは別ディスクの中に記録しておき、そのディスクをパソコン上で実行し、ディスクに記録されている携帯端末向けデジタルストリームをパソコンに接続中の携帯端末にコピーすることで、携帯端末上での映画持ち出し視聴を可能にするサービス(通称「デジタルコピー」)が普及している。だが、上記のようなサービス提供方法では、1.コンテンツ提供者はパソコン上での実行用ディスクを本編とは別に用意しなければならない、2.映画視聴にパソコンを利用していないユーザでも、サービス実行のためには、わざわざパソコンを利用しなければならない、3.サービス提供がパソコンを介して行われることになるため、機器メーカーは、再生装置の機能アピールができない、など課題が多くあり、コンテンツ提供者、ユーザ、機器メーカーのそれぞれにデメリットがあった。
 本発明の他の目的は、リードオンリーメディア上のアプリケーションプログラムと再生装置の独自機能を連携させたサービスを、他の再生装置との互換性を維持しつつ、かつパソコン等の第三の機器を介することなく提供することである。
 かかる目的を達成するための再生装置は以下のものである。
 即ち、前記記録媒体は第1記録媒体であり、第1記録媒体には、ルートディレクトリの配下に第1ディレクトリと、第2ディレクトリとが存在し、
 第1ディレクトリは、本編コンテンツが記録されているディレクトリであり、前記バイトコードアプリケーションは、第1ディレクトリに記録されており、
 第2ディレクトリは、持出し視聴用コンテンツが記録されており、当該持出し視聴用コンテンツは、本編コンテンツとは異なるフォーマットのコンテンツであって、機器固有機能の対象となるものであり、
 前記機器固有機能とは、持出し視聴用コンテンツを構成するファイルを、第1記録媒体から第2記録媒体へと、コピーするというメディア間コピーである
 ことを特徴とする。
 第1ディレクトリに記録された映画本編と、第2ディレクトリに記録された携帯端末向け保護コンテンツを1枚のディスクにまとめることができ、かつディスク上のアプリケーションから、携帯端末向け保護コンテンツの転送を制御できるので、パソコン不要であり再生装置だけで持ち出し視聴サービスを実現することができる。
 更に、任意的ではあるが、上記再生装置は、以下のような追加的な技術的課題の解決を図るものであってもよい。
 (追加的技術的課題その2)
 新規に開発した特殊機能を標準出力関数として実装するために、プレーヤモデルの標準出力関数に新たなAPIを追加するとなると、追加されたAPIを保持していない再生装置では、追加APIを利用するアプリケーションを正常に起動させることができなくなるという下位互換の問題が当然に発生する。具体的には、アプリケーションを起動する段階において、再生装置はアプリケーションが利用するAPIと再生装置が実装しているAPIのリンク処理が行われるが、再生装置が保持していないAPIをアプリケーションが利用していた場合、リンクエラーとなり、アプリケーションの起動自体に失敗するという問題がある。上記問題に対する一つの回避策は、既存APIのみを使うアプリケーションと、追加APIを使うアプリケーションを分けて用意しておき、再生装置のバージョン等を確認して、起動するアプリケーションを変えるという方法である。しかしながら、今後多種多様の機能が追加され、それら機能毎に各再生装置がAPIを拡張していくとなると、どの範囲までのAPIが安全に使え、どの範囲から別アプリケーションにすべきか管理が煩雑になり、異なるメーカ間の再生装置におけるアプリケーション互換性確保が極めて難しくなる。そのため、新機能を追加する際は、標準化団体等で互換性問題が起こらぬよう慎重にAPIを定義し、追加したAPIを機器メーカ、アプリケーション開発者に公開することで、どの範囲までのAPIが安全に使え、どの範囲から別アプリケーションにすべきかを明確にし、新しい機能が追加された機器を過去機種で再生させた場合でも、問題なく再生できるよう配慮がなされている。しかしながら、新機能追加の際、常にこのようなプロセスが必要となると、追加APIの定義には慎重にならざるを得ないために、確定するまでに時間がかかり、再生装置とアプリケーションがもたらすサービス進化が滞るという問題が起こる。
 本発明の別の目的は、APIの標準化を図ることなく、バイトコードアプリケーションの安定的な起動を実現することができる、再生装置を提供することである。
 上記目的を達成するための再生装置は、以下のもの図である。即ち、
 前記第1記録媒体の第1ディレクトリには、機器固有機能のためのオンメディアライブラリが記録されており、オンメディアライブラリは、第1ディレクトリに記録された他のバイトコードアプリケーションに、機器固有機能実行のためのプログラミングインターフェイスを提供するものであり、
 前記オンメディアライブラリは、
 他のバイトコードアプリケーションから、機器固有機能実行用プログラミングインターフェイスのコールがなされた場合、当該プログラミングインターフェイスのコールをソケットコマンドに変換した上で固有機能制御部に出力し、固有機能制御部からのレスポンスを戻り値又はイベントに変換して、コールを行った他のバイトコードアプリケーションに返し、
 前記ソケット接続は、前記ソケットコマンド及びレスポンスを伝送するための通信路を構成する
 ことを特徴とする。
 第1記録媒体に記録されたオンメディアライブラリは、機器固有機能の利用に際して、ソケット接続のためのAPIを利用するので、アプリケーションを起動する段階には、第1記録媒体に記録されたオンメディアライブラリが利用するAPIと、ソケット通信のための再生装置内のネイティブAPIとのリンクが成功する確率が高く、アプリケーションの起動自体に失敗することはない。
 また、ソケット通信のためのプログラミングインターフェイスを利用する限り、既存APIのみを使うアプリケーションと、追加APIを使うアプリケーションとを分けて用意することも不要であり、異なるメーカ間の再生装置におけるアプリケーション互換性確保が難航することはない。
 新機能追加の際、追加API定義のための慎重な配慮は不要となるので、再生装置とアプリケーションがもたらすサービス進化が滞ることはない。アプリケーションと再生装置間で行われる機器固有機能に関する通信データのプロトコル解析をライブラリで一元管理することが可能となり、アプリケーション本体でプロトコル解析を行う必要がなくなるため、アプリケーションの生産性を向上させることができる。 
 任意的であるが、前記再生装置はさらに、前記オンメディアライブラリのアーカイブファイル内のデジタル署名ファイルの正当性を検証する検証部を備え、
 前記検証部は、再生装置内に組み込まれた認証鍵を元に、前記オンメディアライブラリのアーカイブファイル内のデジタル署名ファイルのハッシュ値を算出し、
 前記算出されたハッシュ値が、前記オンメディアライブラリのアーカイブファイル内のデジタル署名ファイルに含まれるデジタル署名の値と一致していれば、バイトコードアプリケーションは、正当であると判断し、
 前記検証部がデジタル署名ファイルが正当でないと判断した場合、前記固有機能制御部はバイトコードアプリケーションから前記再生制御とは異なる機器固有の機能に関連したコマンドを受け取っても、前記再生制御とは異なる機器固有機能の実行を拒否してもよい。
 アプリケーションと再生装置間の通信データの内容を暗号化することができるため、通信データの内容を不正にモニタリングし、得られた再生装置の固有機能に関する情報を悪用するという行為を防ぐことができる。
本発明に係る再生装置の、使用行為についての形態の一例を示す図である。 第1実施形態に係る記録媒体における内部構成と、動作モードオブジェクトの内部構成とを示す。 再生装置の内部構成を示す。 再生装置におけるソフトウェアレイヤ構成を示す。 外部サーバ34と、再生装置における機器固有機能制御部33とを示す図である。 バイトコードアプリケーションが機器固有機能を利用するための、バイトコードアプリケーションの処理手順を示すフローチャートである。 デジタルコピーにおける、再生装置内外のデータの流れを示す。 バイトコードアプリケーション、デジタルコピーモジュール35、及びデジタルコピーサーバ36とのデータ送受信を示すシーケンス図である。 デジタルコピーモジュール35を詳細化した図である。 デジタルコピーモジュール35におけるデジタルコピープロセスのフローチャートである。 BD-ROMの構成を示した図である。 ストリーム形式が異なる、複数の携帯端末向け保護コンテンツが記録されているBD-ROMのディレクトリ構成の一例を示す。 index.bdmvファイルとタイトルの関係の一例と、各タイトルのBD-Jオブジェクトにおけるアプリケーション管理テーブルの内容、プレイリストアクセス情報の内容とを示す。 アプリ内API呼出しの詳細を示すシーケンス図である。 デジタルコピーモジュール35の状態遷移を示す図である。 端末内ローカル通信の詳細を示すシーケンス図である。 BD-Jアプリケーションによる機能確認から初期化までの処理手順を示すフローチャートである。 コピー先状態確認からパラメータセットまでの処理手順を示す。 コピーソース格納ディレクトリの選択手順の詳細を示すサブフローチャートである。 BD-Jアプリケーションによる残りコピー回数の確認から鍵書き込みまでの処理手順を示すフローチャートである。 デジタルコピーの過程で、表示される表示画面の一例を示す図である。 デジタルコピーモジュールの処理手順を示すフローチャートである。 図22のフローチャートの続きである。 図4に示したバイトコード処理モジュールであるプラットフォーム部20のより具体的な構成を示す図である。 ローカルストレージとして使用されたセキュアなメモリカードにおけるディレクトリ構成を示す図である。 従来におけるアプリケーションの署名検証を示す図である。 再生装置が保有するデジタル証明書をベースとした署名検証を示す図である。 署名検証の結果に応じた機能制限を示す図である。 装置固有機能を利用するため接続要求時における処理のフローチャートである。 再生装置にて途中までコンテンツを視聴し、途中から携帯端末で視聴する一例を示す図である。 第7実施形態におけるデータコピーのフローチャートである。 コピー元とコピー先が同一記録媒体におけるデジタルコピーを示す図である。 コピー元とコピー先が同一記録媒体におけるデジタルコピーに対応したフローチャートである。 本発明にかかる集積回路のアーキテクチャを示す図である。
 以下本発明の実施の形態について、図面を参照しながら説明する。
 上記課題解決手段を具備した再生装置の発明は、パッケージ媒体を再生するためのプレーヤ機器として実施することができ、集積回路の発明は、当該プレーヤ機器に組込まれるシステムLSIとして実施することができる。再生方法の発明は、このプレーヤ機器で実現される時系列手順として実施することができる。プログラムの発明は、コンピュータ読み取り可能な記録媒体に記録され、プレーヤ機器にインストールされる実行形式プログラムとして実施することができる。
 (第1実施形態)
 第1実施形態は、機器固有機能を実現するための再生装置内外の通信についての改良に関する。
 先ず始めに、本発明に係る再生装置の実施行為のうち、使用行為についての形態を説明する。図1は、本発明に係る再生装置の、使用行為についての形態の一例を示す図である。図1において、本発明に係る再生装置は、再生装置101である。この再生装置101は、リモコン102、テレビ103、セキュアなメモリカード104、リードオンリーメディア105、携帯端末106、セキュアなメモリカード107と共に、ホームシアターシステムを形成する。
 再生装置101はSDメモリーカード、メモリースティック、コンパクトフラッシュ(登録商標)、スマートメディア、マルチメディアカード等のリムーバブルメディア104を挿入するための挿入口を備える。加えて携帯端末106と接続するためのUSB等の挿入口も備える。
 リモコン102は、再生装置102の付属物であり、再生装置102に対する操作をユーザから受け付けて、操作に応じた指示信号を再生装置102に送信する。再生装置に対する操作としては、リードオンリーメディアの再生制御を再生装置に実行させるための操作、機器固有機能を再生装置に行わせるための操作がある。また再生装置101は、ネットワーク通信機能を有し、外部サーバとの通信を行うことができる。
 テレビ103は、映画作品の再生映像を表示したり、メニュー等を表示することで、対話的な操作環境をユーザに提供する。
 セキュアなメモリカード104は、再生装置で機器固有機能を実行するにあたって、機器固有機能によりコピーされた携帯端末向け保護コンテンツの受け皿として用いられる記録媒体であり、例えば、microSDカード、SDHCカードが該当する。このセキュアなメモリカード104には、保護領域、システム領域が存在しており、保護領域には暗号化された復号鍵が存在する。システム領域には、復号鍵を復号するためのメディアID(MID)、メディアキーブロック(MKB)が存在する。
 リードオンリーメディア105は、ホームシアターシステムに、映画作品を供給するための記録媒体である。
 携帯端末106は、セキュアなメモリカード104の装填が可能であり、セキュアなメモリカード104に書き込まれた携帯端末向け保護コンテンツを利用することができる。この場合、セキュアなメモリカード104の保護領域に書き込まれた暗号化復号鍵をコピー先のメディアのシステム領域に記録されたMKBを用いて復号し、復号鍵に含まれるキー情報(タイトルキー)を取り出し、取り出したキー情報を用いて、携帯端末向け保護コンテンツに含まる暗号化されたデジタルストリームを必要に応じて復号して利用する。ここでの利用とは、持出し視聴用コンテンツに復号して再生することをいう。
 以上が、ホームシアターシステムについての説明である。続いて記録媒体の詳細について説明する。
 図2(a)は、第1実施形態に係る記録媒体における内部構成を示す。本図(a)に示すように、第1実施形態に係る記録媒体には、本編コンテンツ、携帯端末向け保護コンテンツが記録されている。
 本編コンテンツは、リードオンリーメディア105の記録方式や保護方式で格納されたコンテンツであり、ストリームファイル201、ストリーム情報ファイル202、プレイリスト情報ファイル203、インデックステーブル204、アーカイブファイル205、動作モードオブジェクト206から構成されている。 
 ストリームファイル201は、ビデオストリーム、1つ以上のオーディオストリーム、グラフィクスストリームを多重化することで得られたトランスポートストリーム形式のデジタルストリームを格納している。
 ストリーム情報ファイル202は、ストリームファイルにおけるトランスポートストリーム内の任意のソースパケットに対するランダムアクセスや、他のトランスポートストリームとの途切れ無き再生を保障する。このストリーム情報ファイルを通じることにより、ストリームファイルは「AVクリップ」として管理されることになる。ストリーム情報ファイルは、AVクリップにおけるストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、GOPの先頭位置のソースパケット番号を、フレーム期間のプレゼンテーションタイムスタンプと対応付けて示すエントリーマップをもっているので、ストリームファイルのアクセスに先立ち、このストリーム情報ファイルをメモリにロードしておけば、アクセスしようとするストリームファイル中のトランスポートストリームがどのようなものであるのかを把握することができるので、ランダムアクセスの実行を保障することができる。
 プレイリスト情報ファイル203は、再生装置にプレイリストを再生させるための情報を格納したファイルである。“プレイリスト”とは、トランスポートストリーム(TS)の時間軸上で再生区間を規定するとともに、この再生区間同士の再生順序を論理的に指定することで規定される再生経路であり、TSのうち、どれをどの部分だけ再生して、どのような順序でシーン展開してゆくかを規定する役割をもつ。プレイリスト情報は、かかるプレイリストの「型」を定義する。プレイリスト情報によって定義される再生経路は、いわゆる「マルチパス」である。マルチパスとは、主となるTSに対して定義された再生経路(メインパス)と、従となるTSに対して定義された再生経路(サブパス)とを束ねたものである。
 インデックステーブル204は、再生装置におけるタイトル番号レジスタに格納され得る複数のタイトル番号と、動作モードを規定する動作モードオブジェクトとの対応付けを規定する。記録媒体に記録されているタイトルとは、タイトル番号によって特定される動作モードオブジェクトと、この動作モードオブジェクトから再生されるプレイリストとの組みをいう。ここで、タイトル番号レジスタにおけるタイトル番号は、0、1~999、不定値(0xFFFF)という番号がある。タイトル番号0は、トップメニュータイトルのタイトル番号である。トップメニュータイトルとは、ユーザによるメニューコール操作によって呼び出すことができるタイトルである。不定値(0xFFFF)のタイトル番号は、ファーストプレイタイトルのタイトル番号である。ファーストプレイタイトルとは、記録媒体の装填直後に、視聴者への警告やコンテンツプロバイダによるロゴ表示等を行うタイトルである。インデックステーブル204は、各タイトル番号のそれぞれに対応したエントリー(タイトルインデックス)を有し、個々のタイトルインデックスに、動作モードを規定する動作モードオブジェクトを記述することで、各々のタイトルが、どのような動作モードで動作するのかを詳細に規定する。
 アーカイブファイル205は、バイトコードアプリケーションのクラス構造体のファイル(クラスファイル)を、デジタル証明書マニフェストファイル、ディスク署名シグネチャファイル、ディスク署名暗号鍵ファイル、パーミッションリクエストファイルとひとまとめにしてアーカイブしたファイルである。アプリケーションのロードは、このアーカイブファイルをひとまとめにしてなされ、クラスロード時に、デジタル証明書、ディスク署名、ディスク署名暗号鍵を用いたアプリケーションの正当性の検証ができるようになっている。またパーミッションリクエストファイルが存在するので、アプリケーションによる動作を、一定の権限が与えられたのものに限定することができる。
 動作モードオブジェクト206は、インデックステーブルにおいて何れかのタイトル番に対応付けられている制御単位であり、対応するタイトル番号がカレントタイトルとしてタイトル番号レジスタに設定された際、そのタイトル番号に対応するタイトルをどのように動作させるかを示す。
 図2(b)は、動作モードオブジェクトの内部構成を示す。本図に示すように、動作モードオブジェクトは、「アプリケーション管理テーブル」、「端末管理テーブル」、「アプリケーションキャッシュ情報」、「プレイリストアクセス情報」、「キー割当テーブル」から構成される。
「アプリケーション管理テーブル」は、タイトルをバウンダリィとしたクラスロードやアプリケーションシグナリングをアプリケーションマネージャやクラスローダに指示する制御テーブルであり、「端末管理テーブル」は、GUIを実現するためのHAViデバイスコンフィグレーションやGUIに用いるフォント、ユーザ操作のマスクの有無をマルチディアホームプラットフォーム(MHP)に指示する管理テーブルである。「アプリケーションキャッシュ情報」は、タイトル選択時のアーカイブファイルのキャッシュイン/キャッシュアウトをキャッシュマネージャに指示する制御テーブルであり、「プレイリストアクセス情報」タイトル選択時におけるプレイリストアクセスの指定を再生制御部に指示する制御テーブルである。「キー割当テーブル」は、キーと、イベントとの対応付けをイベントマネージャに指示する制御テーブルである。
 「クラスロード」とは、アーカイブファイルにアーカイブされているクラスファイルのインスタンスを、プラットフォームのヒープ領域に生成する処理であり、ヒープ領域に生成したインスタンスが存在する間は、ヒープ領域に生成したインスタンスであるアプリケーションが実行可能となる。「アプリケーションシグナリング」は、クラスファイルのインスタンスであるアプリケーションを自動起動させるか否か、又は、アプリケーションが実行可能となる生存区間をタイトルバウンダリーとするかディスクバウンダリーとするかを規定する制御である。タイトルバウンダリーとは、タイトルの開始からタイトルの終了までのある時点において、アーカイブファイルにアーカイブされているクラスファイルのインスタンスを、プラットフォームのヒープ領域に生成し、タイトルの終了と同時にアプリケーションであるインスタンスをヒープ領域から消滅させるという管理である。ディスクバウンダリーとは、ディスクを挿入してからディスクをイジェクトするまでのある時点において、アーカイブファイルにアーカイブされているクラスファイルのインスタンスを、プラットフォームのヒープ領域に生成し、ディスクイジェクトと同時にアプリケーションであるインスタンスをヒープ領域から消滅させる管理である。逆にディスクイジェクトがされてもインスタンスをヒープ領域から削除しない制御を「ディスクアンバウンダリー」という。「HAViデバイスコンフィグレーション」は、アプリケーションがGUI処理を実行するにあたってのグラフィクスプレーンの解像度や文字表示に用いるフォント等を規定するものである。
 「プレイリストアクセス」とは、起動されたアプリケーションが再生を命じることができるプレイリストやタイトル選択時に自動的に再生すべきプレイリストの指定である。
 「アーカイブファイルのキャッシュイン」とは、クラスロードの対象となるアーカイブファイルをキャッシュに先読みするとの処理であり、「アーカイブファイルのキャッシュアウト」とは、キャッシュに存在するアーカイブファイルをキャッシュから削除するとの処理である。「キーと、イベントとの対応付け」は、ユーザが操作可能なキーに、アプリケーションのイベントリスナに登録されているイベントを割り当てるというものである。動作モードオブジェクトには、他にもナビゲーションコマンドを用いて再生装置を動作させるための動作モードオブジェクトが存在する。
 以上が本編コンテンツについての説明である。続いて、携帯端末向け保護コンテンツの詳細について説明する。
 携帯端末向け保護コンテンツは、本編コンテンツと同一性を有しつつも、格納方式および保護方式のフォーマットが本編コンテンツの格納方式および保護方式のフォーマットとは異なる持出視聴用コンテンツであり、ストリームファイル207、プログラム情報ファイル208、管理情報ファイル209、コピー情報格納ファイル210から構成される。これらストリームファイル207、プログラム情報ファイル208、管理情報ファイル209は、本編コンテンツを構成するストリームファイル201、ストリーム情報ファイル202、プレイリスト情報ファイル203に対応する管理情報である。しかし、コピー情報格納ファイル210は、携帯端末向け保護コンテンツ特有のものである。
 コピー情報格納ファイル210は、コピー情報を格納しているファイルであり、そのコピー情報の1つとして、コンテンツIDが存在する。コンテンツIDは、携帯端末向け保護コンテンツのそれぞれを識別するためコンテンツプロバイダが供給するコンテンツに対して割り当てた128bitの識別子である。携帯端末向け保護コンテンツのうち、機器固有機能の対象になっているもののコンテンツIDは、サーバのデータベースにおいて管理されている。コンテンツIDは、携帯端末向けコンテンツをそれぞれ一意に識別するために割り当てられている。この識別子のうち、上位の所定ビットは、コンテンツプロバイダを識別するためのものである。
 以上が、本発明に係る記録媒体についての説明である。続いて本発明に係る再生装置の内部構成について説明する。
 図3は、再生装置の内部構成を示す。本図に示すように、再生装置は、ドライブデバイス1、デマルチプレクサ2、ビデオデコーダ3、プレーンセット4、ビデオプレーン4a、グラフィクスプレーン4b、レンダリングエンジン5、合成部6、オーディオデコーダ7、機器インターフェイス8、ホストマイコン9、再生制御部10、ユーザインターフェイス11、レジスタセット12から構成される。
 ドライブデバイス1には、リードオンリーメディア105のドライブ、セキュアなメモリカード104のドライブがある。リードオンリーメディア105のドライブは、リードオンリーメディア105を装填して、当該記録媒体に記録されたデジタルストリームを構成するソースパケット系列を、バッファを介して読み出す。セキュアなメモリカード104のドライブは、セキュアなメモリカード104やその他の記録媒体を装填して、アクセスする。USBケーブル等を介して、再生装置に接続されている携帯端末106にセキュアなメモリカード104が装填されている場合、この携帯端末106のドライブにもスロット番号が割り当てられ、“ドライブ”として管理されることになる。これらのセキュアなメモリカード104のドライブは、“スロット”という単位で管理される。複数のスロット番号のそれぞれに対応付ける形式で、ドライブに装填されたリードオンリーメディア105、セキュアなメモリカード104の状態を示すデバイスリストを、“デバイスデバイスリスト”という。
 デマルチプレクサ2は、リードオンリーメディア105から読み出されたソースパケット系列に対して多重分離を行い、PESパケットを得て、該当するデコーダに出力する。
 ビデオデコーダ3は、読み出されたビデオストリームを復号して非圧縮形式のピクチャをプレーンセット4に書き込む。
 プレーンセット4は、複数のプレーンメモリから構成される。プレーンメモリとは、一画面分の画素データをライン単位で格納しておき、水平同期信号、垂直同期信号に沿ってこれらの画素データを出力するためのメモリである。個々のプレーンメモリは、ビデオ、字幕、GUI、背景画像のデコードによって得られた1画面分の画素データを格納する。
 これらのプレーンメモリは、レイヤモデルを構成しており、個々のプレーンメモリの格納内容は、レイヤ合成に供される。このレイヤ合成は、プレーンメモリのレイヤモデルにおいて、2つの階層のプレーンメモリに格納されている画素データの画素値を重畳させるという処理を、レイヤモデルにおける2つの階層の全ての組合せに対して実行することでなされる。
 ビデオプレーン4aは、プレーンセットの1つであり、1920×1080の解像度をもつ非圧縮のピクチャデータを格納する。
 グラフィクスプレーン4bは、プレーンセットのうちの1つであり、ビデオプレーンの上の重畳させるべきグラフィクスを非圧縮形式で格納する。ここでの“グラフィクス”とは、これらグラフィクスプレーンに格納されたARGB形式の画素データによって表現される表示内容のことであり、フォントを用いてテキストコードを展開することにより得られた文字、記号のビットマップや、GIF/JPEG/PNGデータをデコードすることで得られるGIF/JPEG/PNGイメージ(“描画イメージ”という)を含む。
 レンダリングエンジン5は、Java2D,OPEN-GLといった基盤ソフトウェアを備え、バイトコードアプリケーションから要求に従ってJPEGデータ/PNGデータのデコードを行い、イメージやウィジェットを得て、グラフィクスプレーンに書き込む。JPEGデータをデコードすることにより得られる画像データは、GUIの壁紙になるものである。PNGデータをデコードすることにより得られる画素データは、グラフィクスプレーンに書き込まれて、アニメーションを伴うボタン表示を実現することができる。これらJPEGデータ/PNGデータをデコードすることで得られたイメージやウィジェットは、バイトコードアプリケーションが、タイトル選択や字幕選択、音声選択を受け付けるためのメニューを表示したり、ストリーム再生連動型のゲームを動作させるにあたって、GUI部品を構成するために使われる。その他、バイトコードアプリケーションがWWWサイトをアクセスする際、そのWWWサイトのブラウザ画面を構成するために用いられる。
 合成部6は、複数のプレーンメモリのレイヤ合成を行う。
 オーディオデコーダ7は、多重分離で得られたPESパケットのうち、オーディオストリームを構成するものをデコードする。
 機器インターフェイス部8は、ホームシアターシステムにおける他の機器とインターフェイスを介して接続された際、相互認証フェーズと、ネゴシエーションフェーズを経てータ伝送フェーズに移行し、データ伝送を行う。このネゴシエーションフェーズは、相手側機器のケーパビリティ(デコード能力、再生能力、表示周波数を含む)を把握して、プレーヤ設定レジスタに設定しておき、以降の伝送のための伝送方式を定めるものである。これらの相互認証フェーズ、ネゴシエーションフェーズを経て、レイヤ合成がなされたピクチャデータにおける一ライン分の非圧縮・平文形式の画素データを、表示装置における水平同期期間に従い表示装置に高い転送レートで転送する。一方、表示装置における水平帰線期間、及び、垂直帰線期間において、再生装置と接続された他の装置(表示装置のみならずアンプ、スピーカを含む)に、非圧縮・平文形式のオーディオデータを転送する。こうすることで、表示装置、アンプ、スピーカといった機器は、非圧縮・平文形式のピクチャデータ、非圧縮・平文形式のオーディオデータを受け取ることができ、再生出力を実現することができる。また、相手側機器にデコード能力が存在する場合、ビデオストリーム、オーディオストリームのパススルー伝送が可能になる。パススルー伝送では、ビデオストリーム、オーディオストリームを圧縮・暗号化形式のまま伝送することができる。
 ホストマイコン9は、MPU,ROM,RAMから構成され、アーカイブファイルをロードすることで得られるバイトコードアプリケーションを間隔し、実行する。
 再生制御部10は、ドライブデバイス1を制御して、インデックステーブル、動作モードオブジェクト、プレイリスト情報ファイル、ストリーム情報ファイル、ストリームファイルをリードオンリーメディア105から読み出すとともに、記録媒体から読み出されたプレイリスト情報、ストリーム情報に基づく再生制御を実行する。ストリームファイルの読み出しにあたっては、時間軸の任意の時点に相当するソースパケットを、ストリームファイルから読み出すというランダムアクセスを実現することができる。
 ユーザインターフェイス11は、操作装置102に対する操作を受け付ける。
 レジスタセット12は、複数のプレーヤ状態レジスタ、複数のプレーヤ設定レジスタから構成される。プレーヤ状態レジスタは、再生装置のMPUが算術演算やビット演算を行う際、その被演算子となる数値を格納しておくためのハードウェア資源であり、光ディスクが装填された際に初期値が設定され、またカレントタイトル番号やカレントプレイリスト番号の変更等、再生装置の状態が変化した際に、その格納値の有効性が判定されるレジスタである。この格納値としては、カレントタイトル番号、プレイリスト番号、カレントの再生時点等がある。リードオンリーメディア105の装填時に初期値が格納されるので、この格納値は一時的なものでありリードオンリーメディア105がイジェクトされたり、また再生装置の電源が断たれれば、この格納値は有効性を失う。
 プレーヤ設定レジスタは、電源対策が施されている点がプレーヤ状態レジスタとは異なる。電源対策が施されているので、再生装置の電源遮断時において、その格納値が不揮発性のメモリに退避され、再生装置の電源投入時において、その格納値が復帰される。再生装置の製造主体(マニフャクチャ)が再生装置の出荷時に定めた再生装置の各種コンフィグレーションや、ユーザがセットアップ手順に従い設定した各種コンフィグレーション、そして、再生装置がTVシステムやステレオ、アンプ等のホームシアターシステムの機器と接続された際、接続相手となる機器とのネゴシエーションにより判明した相手側機器のケーパビリティがプレーヤ設定レジスタに設定される。
 以上が再生装置の内部構成についての説明である。続いて、再生装置におけるソフトウェアのレイヤ構成の詳細について説明する。
 図4は、再生装置におけるソフトウェアレイヤ構成を示す。
 基本的なレイヤ構成は、ファイルシステム13、リアルタイムOS14が存在し、この上に、コマンド処理モジュール15及びバイトコード処理モジュール16が同じレイヤに併存していて、コマンド処理モジュール15及びバイトコード処理モジュール16の共通の上位レイヤに、モジュールマネージャ17が存在するというものである。
 ファイルシステム13は、ディレクトリ・ファイルといった単位で、リードオンリーメディア105やセキュアなメモリカード104のアクセスを行わせる。
 リアルタイムOS14は、組込みソフトウェアのためのオペレーティングシステム(例えば、Linux)であり、当該オペレーティングシステムのカーネル、基本入出力部から構成される。
 コマンド処理モジュール15は、コマンドインタプリタを含み、ナビゲーションコマンドを解読して実行し、この実行結果に応じて、再生すべきプレイリストを選択するものである。ナビゲーションコマンドは、DVD-Videoと似たようなシンタックスで記述されているため、かかるナビゲーションコマンドを実行することにより、再生装置は、DVD-Videoライクな再生制御を実現することができる。例えば、BD-ROMの再生装置である場合、バイトコード処理モジュール16は、HDMVモジュールに該当する。
 バイトコード処理モジュール16は、リードオンリーメディア105105に記録されたアーカイブファイル内のクラス構造体のインスタンスを動作させるプラットフォーム部20である。例えば、BD-ROMの再生装置である場合、バイトコード処理モジュール16は、BD-Jモジュールに該当する。
 モジュールマネージャ17は、リードオンリーメディア105から読み出されたインデックステーブルを保持して、モード管理及び分岐制御を行う。モジュールマネージャ17によるモード管理とは、動的シナリオをどのコマンド処理モジュール15、バイトコード処理モジュール16の何れかに実行させるかという、モジュールの割り当てである。
 以上のレイヤ構成において、リアルタイムOS14と、バイトコード処理モジュール16とは、バイトコードアプリケーションのプラットフォーム部20を構成する。このプラットフォーム部20は、バイトコードアプリケーションが利用可能なプログラミングインターフェイスを有する。バイトコードアプリケーションが利用可能なプログラミングインターフェイスには、プレイリスト情報を用いたデジタルストリームの再生制御のために標準化されている再生制御用プログラミングインターフェイスと、通信のために標準化されている通信用プログラミングインターフェイスがある。
 次に、バイトコード処理モジュール16の内部構成について説明する。バイトコード処理モジュール16は、クラスローダ21、アプリケーションマネージャ22、ヒープメモリ23、バイトコードインタプリタ24、組込ライブラリ25、再生制御API26から構成される。
 クラスローダ21は、システムアプリケーションの1つであり、アーカイブファイルに存在するクラスファイルからバイトコードを読み出して、ヒープメモリ31に格納することにより、バイトコードアプリケーションのロードを行う。
 アプリケーションマネージャ22は、システムアプリケーションの1つであり、動作モードオブジェクト内のアプリケーション管理テーブルに基づき、バイトコードアプリケーションを起動したりバイトコードアプリケーションを終了したりする等、バイトコードアプリケーションのアプリケーションシグナリングを行う。
 ヒープメモリ23は、システムアプリケーションや組込みライブラリのバイトコード、アプリケーションシグナリングの対象となる一般的なアプリケーションのバイトコード、これらのバイトコードアプリケーションが利用するパラメータが配置されるスタック領域である。
 バイトコードインタプリタ24は、ヒープメモリ31に格納されているバイトコードをネィティブコードに変換して、MPUに実行させる。
 組込みライブラリ25は、バイトコードアプリケーションのためのAV再生機能、ネットワーク通信機能、媒体アクセス機能を提供する。これらのAV再生機能、ネットワーク通信機能、媒体アクセス機能は、標準化団体によって標準化されたものである。
 再生制御API26は、標準化されている再生制御用プログラミングインターフェイスであり、組込ライブラリ25を介した再生制御機能を、バイトコードアプリケーションに提供するためのプログラミングインターフェイスである。
 以上がバイトコード処理モジュール16についての説明である。続いて、リアルタイムOS14及びファイルシステム13の内部構成について説明する。リアルタイムOS14はネイティブAPI27を含み、ファイルシステム13は、読出制御部31、書込制御部32、機器固有機能制御部33を含む。
 ネィティブAPI27は、リアルタイムOS14の基本的機能を、バイトコードアプリケーションに提供するためのプログラミングインターフェイスであり、OSI参照モデルにおける通信用プログラミングインターフェイスである。リアルタイムOS14の基本的機能を利用させるためのAPIは、“システム関数”とも呼ばれる。かかるネィティブAPI27は通信用の基本的なAPIを含み、TCP/IP及びUDP/IPをサポートすることができる。
 読出制御部31は、本編コンテンツを構成するファイル、携帯端末向け保護コンテンツを構成するファイルを、リードオンリーメディア105から読み出して、バイトコード処理モジュール16に供給するようなファイル読み出しを制御する。
 書込制御部32は、携帯端末向け保護コンテンツを構成するファイルを、読出制御部31から受け取ってセキュアなメモリカード104に書き込むようなファイル書き込みを制御する。
 機器固有機能制御部33は、機器固有の機能を実現する。本明細書における機器固有機能とは、再生装置を開発したメーカーによって製造されたプレーヤ機器のみ実行が可能であり、他のメーカーによって製造されたプレーヤ機器では実行することができない機能をいう。
 機器固有機能としては様々なものがある。例えば、ゲーム機器としての機能を具備している再生装置であるなら、そのゲーム機器固有の操作装置に特化した機能が機器固有機能として挙げられる。人が把持して振り回すことで、ユーザによる操作を検出したり、人の動きを検出してユーザによる操作を検出するような操作装置であるなら、その操作装置に特化して、当該ゲーム機器固有となる機能が、機器固有機能となる。他、そのゲーム機器固有のオンライン機能を機器固有機能とすることもできる。これら様々な種類の機器固有機能を、対象にしようとすると説明が煩雑になる。よって、以降の説明では、特許文献1に記載されたようなコピー機能、つまり、図2に記載された持出し視聴用コンテンツを対象としたコピー機能が、機器固有機能であるとして説明を進める。
 機器固有機能は、バイトコードアプリケーションによる利用が制限されている。よって、様々なコンテンツプロバイダのうち、機器固有機能の利用が許可されているものの作成に係るバイトコードアプリケーションのみが、機器固有機能を利用することができる。機器固有機能の利用が許可されていないコンテンツプロバイダの作成に係るバイトコードアプリケーションは、機器固有機能を利用することはできない。コンテンツプロバイダの利用権限をチェックするにあたって、機器固有機能制御部は、コンテンツIDと、シリアル番号との組みを外部サーバに送信して、本編コンテンツの供給源であるコンテンツプロバイダが、機器固有機能の正当なライセンシー(利用許諾者)がどうかをサーバに判断させる。正当なライセンシーであるとサーバが判断した場合は、機器固有機能を実行するが、正当なライセンシーではないと判断した場合、機器固有機能を実行しない。
 以上のレイヤ構成で、機器固有機能を用いた処理を実現するバイトコードアプリケーションについて説明する。
 本実施形態のバイトコードアプリケーションは、ソケットプロトコルによる端末内ローカル通信を通じて、機器固有機能制御部33とのコマンド・レスポンス型の通信を行う点に特徴がある。
 “ソケット”とは、予め定められたポート番号の何れかと、ローカルホストのIPアドレスとをバインドしたものであり、オンメディアライブラリはソケット通信を通じて、機器固有機能制御部に対するコマンドの送信と、機器固有機能制御部からのレスポンスの受信とを行う。
 ソケットプロトコルは、リクエストを受け付けるというソケット作成行程、サーバーのアドレス情報であるIPアドレス及びポート番号をソケットに結び付けるというバインド行程、リクエストの接続待ちキューを設定して接続要求を準備するというリスニング行程、接続待ちのリクエストを受付けてソケット接続を確立し、新しいソケット接続を作成するというアクセプト行程という4つの過程を経て、このソケット接続を介してコマンド、レスポンスの送受信の行程を行う。
 これらの行程において、ソケット作成行程、バインド行程、リスニング行程、アクセプト行程、送受信行程は、Socket関数,bind関数,listen関数,accept関数,send関数,recv関数,closesocket関数といったシステム関数を用いてなされる。また、ソケットへのIPアドレス及びポート番号の結び付けは、SOCKADDR_IN構造体でなされる。これらの関数や構造体は、リアルタイムOS14のネイティブAPI27によって提供されるものである。端末内ローカル通信を用いたソケットプロトコルは、使用されるポートが特殊であることを除けば、リアルタイムOS14のネイティブAPIによって提供されるものであるだから、バイトコードアプリケーションは、バイトコード処理モジュール16内の組込ライブラリ25によるまでもなく、リアルタイムOS14のネイティブAPI27を利用しさえすれば、機器固有機能を利用することができる。
 端末内ローカル通信のためのIPアドレスとしては、ローカルホストのIPアドレスを用いる。ローカルホストとは、現在使用しているシステムを指し、TCP/IPが必要に応じて自身と通信するために使用される。例えば、IPv4におけるローカルホストのIPアドレスは127.0.0.1に、例えば、IPv6におけるローカルホストのIPアドレスは、“::1”に割り当てられたループバックデバイスとなる。
 ソケットプロトコルはコピーヤーズソケットポートと呼ばれるポートを占有する。そのため、デジタルコピープロセスのためのポート番号は、独立して実装される。プロセスに使用されるポート番号を通知するために、バイトコードアプリケーションは、プロセス処理に使用されるポート番号をセットにする必要がある。
 機器固有機能を用いた処理を実現するバイトコードアプリケーションには、機器固有機能を利用するためのプログラミングインターフェイスを他のバイトコードアプリケーションに提供するオンメディアライブラリ(1)、機器固有機能用のプログラミングインターフェイスを用いた対話制御を実現するバイトコードアプリケーション(2)、これらのオンメディアライブラリ及びバイトコードアプリケーションの機能を一体化した統合バイトコードアプリケーション(3)という(1)から(3)までの3種のタイプが存在する。
 以下、機器固有機能を利用するためのプログラミングインターフェイスを提供するオンメディアライブラリについて説明する。
 図5は、オンメディアライブラリ28と、再生装置における機器固有機能制御部33と、外部サーバ29とを示す図である。以下、オンメディアライブラリ28、外部サーバ29について説明する。
 オンメディアライブラリ28は、ローカルネットワークアクセスを用いた機器固有機能制御部33とのデータ送受信を、その他のバイトコードアプリケーションとは分離し、ライブラリ化して、リードオンリーメディア105から供給できるようにしたものである。組込ライブラリ25が再生装置内に組込まれているのに対して、オンメディアライブラリ28はリードオンリーメディア105から供給される点が組込ライブラリ25との違いである。機器固有機能制御部33とのデータ送受信に用いるプロトコルは、個々のバイトコードアプリケーションに依存したものではなく、共通のプロトコルとして定義されている。オンメディアライブラリ28と機器固有機能制御部33との間でなされるローカルネットワークアクセスを用いた、デジタルコピーのためのプロトコルを“デジタルコピーソケットプロトコル”という。デジタルコピーソケットプロトコルは、バイトコードアプリケーションに対してオンメディアライブラリ28が提供しているAPIを、デジタルコピーソケットプロトコル上のコマンド(デジタルコピーソケットコマンドという)に変換し、ソケット通信により機器固有機能制御部33へのコマンド送信、及び、機器固有機能制御部33からのレスポンス受信という送受信を行うことである。
 外部サーバ29は、機器固有機能を利用することができる再生装置や機器固有機能の対象となるコンテンツを管理しており、機器固有機能制御部33からの要求に応じて、機器固有機能の利用履歴の更新と、機器固有機能の利用許諾とを行う。
 以上のオンメディアライブラリ28、機器固有機能制御部33、外部サーバ29間におけるデータの流れについて、図5を参照しながら説明する。図5では、下側にリードオンリーメディア105と、セキュアなメモリカード104とを描き、更にその上に再生装置とサーバ、更にその上にオンメディアライブラリ28を描いている。パイプcm2は、オンメディアライブラリ28と、機器固有機能制御部33との通信を模式的に示す。この通信は、同一端末内のローカル通信であり、ネイティブAPI27を通じてなされる。矢印cp1は、リードオンリーメディア105からセキュアなメモリカード104へのコピーを模式的に示す。このコピーは、機器固有機能を利用するための、管理情報の書き込みであり、端末内ローカル通信を通じたオンメディアライブラリ28による指示でなされる。
 パイプcm1は、機器固有機能制御部33と外部サーバ29との通信を模式的に示す。この通信は、端末間のグローバル通信である。セキュアなメモリカード104へのダウンロードは、このグローバルネットワークを介した、機器固有機能制御部33による通信要求でなされる。前述したように、本実施の形態においては、従来のネットワークAPIであるソケット通信APIを端末内部に向けることで、バイトコード処理モジュールのAPIとしては規定されていない端末固有の機能を呼び出すことが可能となる。従来のBD-ROMにおけるBD-Jアプリケーション等のバイトコードアプリケーションにおけるネットワークAPIの利用方法は、主に外部サーバとの接続に用いられ、特典映像や追加字幕・アプリケーションなどの追加コンテンツのダウンロード用として使われてきた。これらのネットワークAPIを拡張するとなく同一端末間のローカル通信を形成することで、バイトコードアプリケーションから見れば、現在実行中の再生端末がまるでサーバのようにアクセスすることが可能となり、規定のAPIにとらわれない様々な機能を呼び出すことが可能となる。
 以上が機器固有機能制御部33についての説明である。続いて、機器固有機能を実行するためのバイトコードアプリケーションの処理手順について説明する。
 図6は、バイトコードアプリケーションが機器固有機能を利用するための、バイトコードアプリケーションの処理手順を示すフローチャートである。
 まず、バイトコードアプリケーションは、再生装置がデジタルコピーに対応しているかどうかの判断を行う。バイトコードアプリケーションからオンメディアライブラィ28に対し、再生装置のデジタルコピー対応確認が要求されると、オンメディアライブラィ28は、デジタルコピーに割り当てられた通信ポートを示すシステムプロパティ("digitalcopy.port")が存在するかどうかを確認する(ステップS501)。
 ステップS501でシステムプロパティが存在しなければ、予め決められた固定ポートへ接続し(ステップS502)、システムプロパティが存在する場合は、システムプロパティが示すポートへ接続する(ステップS503)。次に通信ポートへの接続に成功したかどうかを確認し(ステップS504)、通信ポートへの接続が失敗すれば、現在の再生装置ではデジタルコピーに対応していないと判断する(ステップS508)。
 ステップS504で通信ポートへの接続に成功した場合、デジタルコピーライブラリは、その通信ポートを経由して機器固有機能制御部33に初期化を要求する(ステップS505)。そして、ステップS505の初期化要求に対する機器固有機能制御部33からの応答を接続中の通信ポートで受け取る(ステップS506)。ステップS506で、初期化成功との応答を受け取った場合、現在の再生装置で機器固有機能の実行は可能であるから、機器固有機能を実行する(ステップS507)。機器固有機能制御部33からの応答がない、もしくは初期化失敗との応答を受け取った場合は、現在の再生装置では機器固有機能の実行は不可であり、機器固有機能を実行せずにリターンする(ステップS508)。このようにバイトコードアプリケーションは、ポート接続が成功したかどうか、機器固有機能制御部33の初期化に成功したかどうかで、機器固有機能の実行可能性を判断する。
 以上のように本実施形態によれば、ネイティブAPIとしてサポートされているソケット機能を用いて、機器固有機能をバイトコードアプリケーションに提供するので、既に標準化されているデジタルストリーム再生制御のためのAPIに対して、追加/改変を加えることなく、アプリケーションに機器固有機能を使用させることができる。追加/改変を加えることなく、アプリケーションに機器固有機能を使用させるので、特殊機能を利用したアプリケーションが様々なコンテンツプロバイダが開発され、市場に投入されると予想される。その結果、特殊機能を起動するためのユーザインターフェイスが多種多様なものになり、ユーザは、より判りやすく親しみ易いユーザインターフェイスを通じて、あるメーカーが独自開発した特殊機能を利用することができる。
 機器固有機能として実装する限り、後発メーカーの追従を避けることができるから、一メーカーが開発した特殊機能を機器固有機能として実装した製品により、市場を寡占することができる。
 (第2実施形態)
 第1実施形態では、機器固有機能の内容を具体的に特定していなかったが、本実施形態では、機器固有機能がデジタルコピーであるとして説明する。本実施形態におけるデジタルコピーとは、携帯端末での視聴のために、リードオンリーメディア105からセキュアなメモリカード104へと持出し視聴用コンテンツをコピーする機能、つまりメディア間コピーのことである。そして、外部サーバによる管理の下、再生装置がメディア間コピーを実行することによって、リードオンリーメディア105におけるコンテンツを、携帯端末に持ち出させるサービスを、“e-moveサービス”という。e-moveサービスの対象であり、持ち出しを前提にしたコンテンツ(持出し視聴用コンテンツのこと)を、“e-moveコンテンツ”という。
 e-moveサービスを、既存の類似の機能やサービスと対比した場合、長所は以下の通りである。
 既存の類似機能にはAACSにおけるマネージドコピーがあり、類似のサービスには、Apple社のデジタルコピーがある。
 AACSにおけるマネージドコピーは、トランスコードを必要とし、例えば、2時間のAVストリームであるなら、そのトランスコードに、2時間長の処理時間が必要となる。これに対し、e-moveサービスでは、リードオンリーメディア105に記録されているコンテンツをセキュアなメモリカード104に書き込む処理で足りるから、その処理時間は短くて済む。
 Apple社のデジタルコピーは、BD-ROMとは別に、DVD-Videoディスクやコピーのためのコンテンツが記録されたDVD-ROMディスクがセットパッケージに同梱されていて、そのDVD-ROMディスクをパソコンに装填して、記録されているプログラムをパソコンで動作させることによりメモリカードへのコピーを行う。BD-ROM、DVD-Video、DVD-ROMが同梱されているため、価格が高く、ユーザにとって望ましくない。
 このデジタルコピーと比較すると、e-moveサービスでは、リードオンリーメディア105に記録されたバイトコードアプリケーションに直接、持ち出し視聴のためのコピーを行わせるので、パソコンにデジタルコピーを実行させるためのDVD-ROMは不要である。
 以上がe-moveサービスについての説明である。続いて、メディア間コピーの詳細について説明する。
 携帯端末向け保護コンテンツは、外部サーバによる権利管理の下、私的利用のためのコピーが認められる。よって、機器固有機能制御部33によるデジタルコピーは、外部サーバの1つである、デジタルコピーサーバによる権利管理の下でなされる必要がある。
 以下、権利管理のためのデジタルコピーモジュール35及びデジタルコピーサーバ36について説明する。
 図7は、デジタルコピーにおける、再生装置内外のデータの流れを示す。かかるデジタルコピーを実現するため、機器固有機能制御部33はデジタルコピーモジュール35を具備しており、また外部サーバ29は、デジタルコピーサーバ36に置き換えられている。
 デジタルコピーモジュール35は、リードオンリーメディア105からの携帯端末向け保護コンテンツを構成するファイルの読み出しと、セキュアなメモリカード104への書き込みとを行うことで、携帯端末向け保護コンテンツを構成するファイルのコピーを行う。デジタルコピーモジュール35には、ファイル読み出し/書き込みのための複数のパラメータが予め設定されており、これらのパラメータに基づき、コピーの前処理、後処理を行う。
 ここで、複数のパラメータには、カレントシリアルID、カレントソースロケーション、カレントサーバURL、カレント出力デバイス、カレントレジューム位置といったものがある。そして、デジタルコピーモジュール35による前処理とは、対象となる携帯端末向け保護コンテンツの残りコピー回数をサーバから取得するというものである。具体的には、カレントソースロケーションを示すファイルパスによって特定されるリードオンリーメディア105のディレクトリ配下のコピー情報ファイルからコンテンツIDを取り出し、カレント出力デバイスによって特定されるドライブに装填されたセキュアなメモリカード104からメディアIDを取り出す。これらのコンテンツIDと、メディアIDと、カレントのシリアルIDとの組合せを、カレントサーバURLで指示されたサーバに送信することで、データベースの検索をサーバに行わせ、これらの組合せにヒットする残りコピー回数を取り出させてバイトコードアプリケーションに返す。
 後処理とは、いわゆる復号鍵のダウンロードであり、コンテンツIDと、シリアルIDと、メディアIDと、カレント出力デバイスのMKBとの組合せを、サーバに送信することで、データベースの検索をサーバに行わせ、これらの組合せにヒットするタイトルキーを取り出させ、復号鍵を生成させて、セキュアなメモリカード104にダウンロードするというものである。
 デジタルコピーサーバ36は、携帯端末向け保護コンテンツの権利管理を行う複数のシリアルIDについてのタイトルキーのデータベースを有している。このデータベースでは、複数のシリアルIDのそれぞれに対応付けて、タイトルキーを管理しており、コンテンツID、シリアルID、メディアID、MKBの組合せをキーワードとした検索要求が機器固有機能制御部33からなされば、このキーワードにおけるシリアルIDを用いてデータベースを検索して、当該組合せにヒットしたタイトルキーをデータベースから読み出し、コンテンツID、シリアルID、メディアID、MKBを用いてこのタイトルキーを暗号化した上で復号鍵を得て、検索要求の要求元のデジタルコピーモジュール35に復号鍵をダウンロードする。
 またデジタルコピーサーバ36は、コンテンツID、メディアID、シリアルIDの組みに対応付けて、複数のコピーチケットを管理している。コピーチケットとは、コンテンツID、メディアID、シリアルIDの組合せのそれぞれについて、何回の私的コピーが認められているかを管理する権利管理情報であり、本実施形態では、デジタルコピーの運営業者が定めた残コピー回数によって、私的コピーの回数を管理している。デジタルコピーが一回なされる度に、残コピー回数は、1回ずつ減じられることになる。そして、コンテンツID、シリアルID、メディアIDをキーワードとした検索要求がデジタルコピーモジュール35からなされれば、データベースにおける複数のコピーチケットの中から、これらコンテンツID、シリアルID、メディアIDの組合せ条件にヒットする残コピー回数をデータベースから読み出して、要求元のデジタルコピーモジュール35に返す。ここで、コンテンツID、シリアルID、メディアID、MKBの組合せを含む検索要求がデジタルコピーモジュール35からなされて、タイトルキーのダウンロードがなされれば、残コピー回数を一回減じる。こうすることで、デジタルコピーは、デジタルコピーサーバ36で管理されている残りコピー回数以下に制限されることになる。
 以下、図7を参照して、デジタルコピープロセスにおけるデータの流れを説明する。図7では、中段に再生装置を描き、その下側にセキュアなメモリカード104を描き、上側にリードオンリーメディア105と、デジタルコピーサーバ36とを描いている。
 デジタルコピープロセスにおいて扱う主なデータは、シリアルID,コンテンツID,メディアID(MID)、メディアキーブロック(MKB),携帯端末向け保護コンテンツ、及び復号鍵である。リードオンリーメディア105には、コンテンツIDを格納したファイル、携帯端末向け保護コンテンツ、バイトコードアプリケーション、オンメディアライブラリ28が存在する。
 シリアルIDは、個々のリードオンリーメディア105のそれぞれを識別するための識別情報であり、市場に流通するリードオンリーメディア105のうち、機器固有機能の対象になっているもののシリアルIDは、デジタルコピーサーバ36のデータベースにおいて、管理されている。シリアルIDとしては、BCA(Burst Cutting Area)に記録されているPMSN(Pre-recorded Media Serial Number)を利用することができるが、これ以外の値として、パッケージに同梱されている紙に記載されたクーポンIDをユーザに手入力させた値を代替することも可能である。PMSNを利用すれば、ユーザに手入力させる必要もなく自動で認証を行うことが可能であるが、一方でレンタルディスク等の場合にPMSNを利用するとなると、最初に借りたユーザだけが、このサービスの実施権が与えられることになり、二番目以降に借りるユーザに不公平となる。レンタルディスクの場合はクーポンIDの手入力が望ましく、市販ディスクの場合はPMSNの利用が望ましい。
 メディアID(MID)はコピー先メディアのシステム領域に記載されている値である。
 図7の動作例においてコピーされるのは携帯端末向け保護コンテンツであり、ダウンロードされるのは、復号鍵である。このダウンロードにあたって、セキュアなメモリカード104からはMKBが読み出され、コンテンツID、シリアルIDと共に、デジタルコピーサーバ36に送信される。
 シリアルIDの流れを追ってみると、バイトコードアプリケーションがシリアルIDを取得した際、バイトコードアプリケーションは直接、シリアルIDをデジタルコピーモジュール35に引き渡すのではなく、オンメディアライブラリ28にシリアルIDを引き渡して、オンメディアライブラリ28を通じて、シリアルIDをデジタルコピーサーバ36に引き渡す。シリアルIDはバイトコードアプリケーションが指定したものが、矢印sd1,sd2,sd3に示すように、デジタルコピーライブラリに渡され、それがソケット通信APIを通じて、デジタルコピーモジュール35を通じてデジタルコピーサーバ36に引き渡される。
 コンテンツIDの流れを負ってみると、コンテンツIDは読み出され、サーバに送信される。コンテンツIDに関しては、バイトコードアプリケーションが指定したディスク上のコピー情報ファイルから、矢印cd1に示すようにデジタルコピーモジュール35によって読み取られる。
 メディアID,MKBに関しては、バイトコードアプリケーションが指定したコピー先のセキュアなメモリカード104のシステム領域から、矢印md1に示すように、デジタルコピーモジュール35によって読み取られる。
 こうして得られたシリアルID,コンテンツID,メディアID(MID)、MKBは、矢印sd3,cd2,md2に示すように、デジタルコピーサーバ36へ送られ、これらと引き換えに、デジタルコピーサーバ36から矢印dk1に示すように復号鍵は送信される。これがサーバからのダウンロードであり、デジタルコピーモジュール35は、矢印dk2に示すようにその復号鍵をコピー先メディアの保護領域に書き込む。以上がデジタルコピープロセスにおいて扱う主なデータの流れである。
 また、コピー先のメディアの保護領域に書き込まれる復号鍵は、携帯端末向け保護コンテンツ内の暗号化データを復号するためのキー情報(タイトルキー)を含む。復号鍵は、コピー先のメディアのシステム領域に記録されたMKBを用いて復号できるように暗号化されている。
 以上が、デジタルコピーモジュール35、デジタルコピーサーバ36、バイトコードアプリケーション、セキュアなメモリカード104間のデータの流れである。続いて、バイトコードアプリケーションと、機器固有機能制御部33との間でなされる通信の詳細について説明する。
 図8は、バイトコードアプリケーション、デジタルコピーモジュール35、及びデジタルコピーサーバ36とのデータ送受信を示すシーケンス図である。本図は、システムの通信シーケンスを示すシーケンス図である。本図の横方向には、バイトコードアプリケーション、オンメディアライブラリ28、デジタルコピーモジュール35、デジタルコピーサーバ36が、それぞれ配置されている。縦方向には、複数の時間軸を描いている。これらの時間軸は、装置が具備しているクロックにより管理されるものである。時間軸上の各時点が、API呼出しのタイミングとなる。
 バイトコードアプリケーションとオンメディアライブラィ28との間では、通信経路が確立されず、通常のアプリケーション内API呼び出しが行われるに過ぎない。しかし、オンメディアライブラリ28と、デジタルコピーモジュール35との間は、同一端末内のソケット通信である。デジタルコピーモジュール35とデジタルコピーサーバ36との間は、別端末間のグローバルソケット通信が形成される。本図におけるシーケンスは、a.機器確認フェーズ、b.初期化フェーズ、d.パラメータセットフェーズ、e.残コピー回数確認フェーズ、f.コピー開始フェーズ、g.コピー進捗確認フェーズ、h.鍵書込みフェーズからなる。以下、これらのフェーズについて説明する。
 「a.機能確認フェーズ」は、オンメディアライブラィ28に対して機能確認を行い、オンメディアライブラィ28からデジタルコピーの可否を受けとるという、オンメディアライブラィ28を介したデジタルコピーモジュール35とのやりとりで構成される。
 「b.初期化フェーズ」は、オンメディアライブラィ28に対して初期化を行い、オンメディアライブラィ28から初期化の可否を受けとるという、オンメディアライブラィ28を介したデジタルコピーモジュール35とのやりとりで構成される。
 
 「d.パラメータセットフェーズ」は、オンメディアライブラィ28に対してコピーパラメータをセットするとの設定処理を行い、オンメディアライブラィ28からパラメータセットの可否を受け取るというオンメディアライブラィ28を介したデジタルコピーモジュール35とのやりとりで構成される。つまりバイトコードアプリケーションはデジタルコピー可能であるという通知を受け取ると、続いてデジタルコピーに必要なパラメータをデジタルコピーライブラリ経由で、デジタルコピーモジュール35へセットする。
 デジタルコピーライブラリはこれらのパラメータがバイトコードアプリケーションから指定されると、接続中の通信ポートを用いてデジタルコピーモジュール35へ指定されたパラメータを送信する。
 「e.残コピー回数確認フェーズ」は、オンメディアライブラィ28に対して残コピー回数を確認するとの処理を行い、オンメディアライブラィ28から残りコピー回数を受け取るというオンメディアライブラィ28、デジタルコピーモジュール35を介したサーバとのやりとりで構成される。バイトコードアプリケーションは次に残コピー回数の確認を行う。残コピー回数の確認も、パラメータのセットと同様、デジタルコピーライブラリを経由し、接続中の通信ポートを用いてデジタルコピーモジュール35へ問い合わせを行う。残コピー回数は、デジタルコピーサーバ36で管理されているため、デジタルコピーモジュール35は残コピー回数の確認要求を受け取ると、矢印に示すように、現在セットされているパラメータから、コンテンツID,シリアルID,メディアIDを取り出しデジタルコピーサーバ36へ、これら3つの値を送る。バイトコードアプリケーション、オンメディアライブラィ28及びデジタルコピーモジュール35の間は端末内ローカル通信であり、外部インターネット接続不要であったが、デジタルコピーモジュール35とデジタルコピーサーバ36との間はグローバルなインターネット接続が必要となる。デジタルコピーサーバ36は、受け取った値を元に残コピー回数を割り出し、デジタルコピーモジュール35へ残コピー回数の値を返信する。デジタルコピーモジュール35は、この残コピー回数をデジタルコピーライブラリ経由でバイトコードアプリケーションに通知する。
 「f.コピー開始フェーズ」は、オンメディアライブラィ28に対してコピー開始を要求するとの処理を行い、オンメディアライブラィ28から、コピー開始の成功/失敗、及び、コピー完了通知の何れかを受け取るというオンメディアライブラィ28を介したデジタルコピーモジュール35とのやりとりで構成される。バイトコードアプリケーションは、コピー回数が1回以上残っていることが判明した場合、コピー開始の要求を行う。このコピー開始要求も、これまでと同様、デジタルコピーライブラリを経由し、通信ポートを用いてデジタルコピーモジュール35へ伝えられる。デジタルコピーモジュール35はコピー開始要求を受け取ると、コピーを開始し、その間、バイトコードアプリケーションからの要求に応じてコピー進捗状況を随時通知する。
 「g.進捗確認フェーズ」は、オンメディアライブラィ28に対して進捗確認を要求するとの処理を行い、オンメディアライブラィ28から進捗状況を受け取るというオンメディアライブラィ28を介したデジタルコピーモジュール35とのやりとりで構成される。
 「h.鍵書込みフェーズ」は、オンメディアライブラィ28に対して鍵書き込みを要求するとの処理を行い、オンメディアライブラィ28から復号鍵書き込みの完了通知を受け取るというオンメディアライブラィ28、デジタルコピーモジュール35を介したサーバとのやりとりで構成される。具体的にいうと、コピー完了通知を受け取った際、バイトコードアプリケーションは、復号鍵の書込みをデジタルコピーモジュール35へ要求する。デジタルコピーモジュール35は復号鍵の書込み要求を受け取ると、現在セットされているパラメータから、コンテンツID,シリアルID,メディアID,MKBを取り出しデジタルコピーサーバ36へ、これら4つの値を送る。
 デジタルコピーサーバ36は、受け取った値を元に復号鍵を生成し、デジタルコピーモジュール35へ復号鍵を返信する。デジタルコピーモジュール35は、デジタルコピーサーバ36から受け取った復号鍵をコピー先メディアに書き込み、書き込みが完了すると、デジタルコピーライブラリを経由してバイトコードアプリケーションに書き込み完了を通知する。
 以上が、機器固有機能のために、再生装置内でなされる、3つの通信についての説明である。続いて、デジタルコピーを実現するにあたっての処理手順の詳細について説明する。
 デジタルコピーの実行が可能である場合、バイトコードアプリケーションは、オンメディアライブラリ28とのアプリケーション間通信を通じて、デジタルコピーのプロセスを実行する。オンメディアライブラリ28によるデジタルコピープロセスの処理手順は、図10に示すものとなる。
 以上が通信シーケンスの詳細についての説明である。続いて、デジタルコピーモジュール35の内部構成について説明する。
 図9は、デジタルコピーモジュール35を詳細化した図である。デジタルコピーモジュール35は、通信管理部601、鍵情報読込部602、メディア状態管理部603、コピー実行部604、コピー状態通知部605、コピー進捗管理部606、鍵情報書込部608、コマンド処理部609、空き容量判定部610で構成される。
 通信管理部601は、再生装置内の通信ポートの一つをデジタルコピー制御のために割り当て、このデジタルコピー通信ポートを用いて、バイトコード処理モジュールとのプロトコル通信を行う。具体的には、サーバソケットとしてデジタルコピー通信ポートを開いて、バイトコード処理モジュールからの要求が来るのを待ち、デジタルコピー通信ポートに対してデータが送られてくると、送られてきたデータを解析し、そのデータに対応する処理を行う。処理結果も同様にデジタルコピー通信ポートを介してバイトコード処理モジュールに送り返す。加えて、通信管理部601はデジタルコピーサーバ36とのデータ通信管理も行う。具体的には、暗号化された携帯端末向けデジタルストリームを復号するために必要な復号鍵をデジタルコピーサーバ36から取得するために必要な通信処理を行う。
 鍵情報読込部602は、復号鍵生成に必要な情報をコピー元のリードオンリーメディア105、及び、コピー先のセキュアなメモリカード104から読出す。具体的には、コピー元からはリードオンリーメディア105上の特殊領域であるBCA(Burst Cutting Area)に記録されている記録媒体の物理的なシリアルIDを示すPMSN(Pre-recorded Media Serial Number)を、コピー先のリードオンリーメディア105からはコピー先のメディアに記録されている、メディア毎にユニークに設定されるメディア固有の情報(メディアID)、及び復号鍵生成に必要な鍵情報が記録されたメディアキーブロック(MKB)の読出しを行う。
 メディア状態管理部603は、再生装置が現在コピー先として利用できるメディアの種類一覧を管理する。例えば、再生装置がSDカードスロットと、USBメモリスロットを備え、現在、SDカードのみが挿入されているのであれば、SDカードが現在のコピー先の対象と判断する。SDカードとUSBメモリ(もしくはUSB接続されている携帯端末)の両方が挿入されていれば、コピー先としてSDカード、USBメモリの両方が可能と判断する。加えて、コピー先メディアの空き容量管理も行う。
 コピー実行部604は、バイトコードアプリケーションから指示されたリードオンリーメディア105上の携帯端末向け保護コンテンツを別メディアへコピーする処理を行う。バイトコードアプリケーションからの指示はオンメディアライブラィ28を経由し、デジタルコピー通信ポート上で行われる。なおコピー実行部604によるデータコピーだけでは、コピー先で携帯端末向け保護コンテンツを再生することはできない。後述の復号鍵書込部608によってコピー先へ復号鍵の書込みが完了した後にコピー先にて再生が可能となる。
 コピー状態通知部605はコピーの開始・正常終了・エラー終了等の状態遷移を管理し、デジタルコピー通信ポートを通じてデジタルコピーモジュール35とローカル通信接続中のバイトコードアプリケーションに状態遷移を通知する。
 コピー進捗管理部606はコピー対象となっている残りバイト数、コピー済みバイト数の管理を行い、デジタルコピー通信ポートを介したバイトコードアプリケーションからの要求に応じて、現在の進捗情報を通知する。
 復号鍵書込部608は、鍵情報読込部602が取得したリードオンリーメディア105のシリアルID、コピー先メディアのメディアID、及びMKBから生成される復号鍵の書込みを行う。復号鍵の生成は、デジタルコピーサーバ36にある秘密鍵を元に行われるため、デジタルコピーモジュール35は鍵情報読込部602が、リードオンリーメディア105のシリアルID、コピー先メディアのメディアID、及びMKBを取得した後、通信管理部601を経由してデジタルコピーサーバ36にこれらの値と、コピー対象コンテンツのコンテンツIDを送信する。デジタルコピーサーバ36は受け取った値とデジタルコピーサーバ36が保持する秘密鍵から復号鍵を生成し、通信管理部601へ復号鍵を送信する。生成される復号鍵はコピー先メディアのMKBにより復号できるような暗号化がなされている。通信管理部601が復号鍵を受け取ると鍵情報書込部608はコピー先の保護領域に復号鍵の書込みを行う。復号鍵はキー情報(タイトルキー)を含んでおり、キー情報が暗号化された携帯端末向け保護コンテンツの復号に用いられる。
 このキー情報を含む復号鍵がなければ、たとえ、無断でコピー元の携帯端末向け保護コンテンツのみを別のメディアにコピーしたとしても再生することはできない。
 コマンド解釈部609は、オンメディアライブラリ28が発行したコマンドを解釈し、コマンドのオペランドを用いて、上記通信管理部601~コマンド処理部609を制御することにより、オンメディアライブラリ28が発行したコマンドのオペコードに応じた制御内容を実行する。
 空き容量判定部610は、コピー先メディアの空き残量及びコピー元コンテンツをもとにコピーに必要な空き容量がコピー先に存在するかを判定する。
 デジタルコピーモジュール35は以上の構成を持ち、これらの操作はデジタルコピー通信ポートにローカル通信接続を行っているバイトコードアプリケーションから制御できる。これらの制御を操作できる直接のAPIはバイトコード処理モジュールに存在しないため、デジタルコピー通信ポートに接続できていないバイトコードアプリケーションからは制御ができないということになる。
 図10は、デジタルコピーモジュール35におけるデジタルコピープロセスのフローチャートである。デジタルコピーモジュール35は、まず再生装置に挿入されているリードオンリーメディア105上に携帯端末向け保護コンテンツが存在するかどうかを確認する(ステップS101)。携帯端末向け保護コンテンツが、ディスク上のルートディレクトリ直下の“EMOVE”ディレクトリの配下に記録されるとのルールが存在する場合、デジタルコピーモジュール35は、この“EMOVE”ディレクトリが存在するかどうかで、ディスク上に携帯端末向け保護コンテンツが存在するかどうかを判断する。EMOVEディレクトリとは、e-moveサービスの対象となるファイル一式を格納するためのディレクトリである。
 ステップS101で携帯端末向け保護コンテンツが存在しなかった場合は、デジタルコピープロセスを中断し、携帯端末向け保護コンテンツが存在する場合、デジタルコピーモジュール35はデジタルコピーソケットコマンド用通信ポートを指定してサーバソケットを作成し、デジタルコピーソケットコマンド用通信ポートに対するバイトコードアプリケーションからの接続を待つ(ステップS102)。
 携帯端末向け保護コンテンツが存在する場合のみサーバソケットを作成する理由は、常にサーバソケットを開いた状態にしておくと、無駄にポートを空けている時間が長くなり、不必要なリソースを消費するということと不正アプリケーションからの攻撃の恐れがあるということから、ポートを開いている時間は極力短時間にするのが望ましい。そのため、ステップS101で携帯端末向け保護コンテンツが存在する場合のみ、サーバソケットを作成し、ポートを開く。ポートを開く時間を極小化する他の方法としては、バイトコードアプリケーション動作中のみ(すなわち、バイトコードアプリケーションを連動したタイトル再生中のみ)、サーバソケットを作成しポートを開く、もしくはバイトコードアプリケーションからポートオープンの命令を受け取ってからポートを開く等が考えられる。
 ポートオープン命令はポートが閉じられた状態で行われることになるので、バイトコードアプリケーションからポートオープンの命令を受け取るには、ポート通信以外の方法で受け取らなければならない。そのためにAPIを追加するというのであれば、互換性維持のため一切のAPI追加を行わないという本願の趣旨に反することになるため、APIの追加なしで命令を受け取る必要がある。ポートオープンの命令を示す案としては、例えば、汎用のシステムプロパティAPIを用い、バイトコードアプリケーションから、予め決められたプロパティにある値がセットされたとき、もしくはレジスタセットの中の汎用レジスタの中から、ある一つに対して予め決められた値がセットされたときに、ポートオープンの要求がなされたとみなすことができる。システムプロパティAPIを用いる場合は例えば、“digitalcopy.portstatus”というプロパティ名を用意しておき、そのプロパティ名の示す値に"OPEN"を設定すると、ポートを開くという手段が考えられる。ステップS102でサーバソケットを作成し、デジタルコピーソケットコマンド用通信ポートを開くと、そのポートに対してバイトコードアプリケーション(デジタルコピーライブラリを含む)が接続してくるのを待つ(ステップS103)。バイトコードアプリケーションからの接続要求は予め決められたコマンド文字列(もしくはバイナリデータでも良い)をデジタルコピーモジュール35とバイトコードアプリケーション(デジタルコピーライブラリ)間で相互に交換し、お互いが送り合うデータが期待値と一致しているかどうかを相互確認することで実現するのが望ましい。当然ながら、お互いが送り合うデータが期待値と一致していなかった場合は、不正とみなし、以後の処理を中断する(ステップS104)。
 ステップS104でデジタルコピーモジュール35はバイトコードアプリケーションとの接続に成功したと判断した場合、次にバイトコードアプリケーションからデジタルコピーのコピー先候補のリスト(再生装置がサポートしているコピー先メディア一覧)を要求してくるのを待ち、通信ポートを介してその要求を受け取ると、この再生装置において携帯端末向け保護コンテンツのコピー先としてサポートしているメディアの確認を行う(ステップS105)。携帯端末向け保護コンテンツのコピー先としてサポートしているメディアがなければデジタルコピーを中断し、サポートしているメディアがあれば、そのメディアのリストを同じく通信ポートを介してバイトコードアプリケーションに送信する(ステップS106)。デジタルコピーモジュール35はこの時点で空き容量が不足しているかどうかを先行して判断することができるが、ステップS106で返すメディアのリストには空き容量が不足しているメディア及びまだ挿入されていないメディアも含めてバイトコードアプリケーションに渡す。理由は、空き容量が不足しているものを除いて渡してしまうと、再生装置がサポートしていないから、リストにないのか空き容量が不足しているからリストにないのかの判断がつかないためである。再生装置はサポートしているが、空き容量が不足している場合はユーザがそのメディア上の不要ファイルを削除するなどして空き容量を確保するという選択を取ることができるため、ステップS106で返すリストには空き容量が不足しているものも含めるのが望ましい。同様の理由でリストには未挿入メディアも含めておけば、メディアの挿入し忘れをユーザに通知することができる。
 次に、バイトコードアプリケーションは得られたコピー先候補のリストをユーザに提示し、ユーザが選んだメディアをデジタルコピーモジュール35に通知する(ステップS107)。デジタルコピーモジュール35は選択されたメディアにコピーを行うための十分な空き容量があるかどうか、及び残コピー回数が残っているかどうかを確認し(ステップS108)、空き容量がない、もしくは残コピー回数が残っていなければバイトコードアプリケーションに容量不足もしくは残コピー回数がない旨を通知する。残コピー回数の確認はデジタルコピーサーバ36への問い合わせが必要となる。バイトコードアプリケーションは容量不足の通知をデジタルコピーモジュール35から受け取った場合は、再度ステップS107に戻り、別のメディアの選択を行わせるか、ユーザに不要ファイルの削除を促す、もしくは同一種類のメディアでより容量の大きいものに交換する等のメッセージを表示する。ステップS108での空き容量確認は、コピー先メディアのユーザ領域だけでなく、保護領域の空き容量の確認をも含む。
 保護領域にすでに他のコンテンツ復号鍵が書き込まれており、復号鍵を追加で書き込む余地がなければ、ユーザ領域に空きがあったとしても、容量不足の通知をバイトコードアプリケーションに通知する必要がある。万一、保護領域の空き容量チェックを怠った場合は、デジタルコピープロセスの最後のステップである復号鍵の書き込み時点で失敗することになり、ユーザにとっては時間のロスとなるばかりか、デジタルコピーサーバ36から復号鍵のダウンロードが完了しているために最悪の場合コピー権利を無駄に一つ消費してしまうことになりかねない。よって、ステップS108の空き容量確認は、ユーザ領域だけでなく保護領域の空き容量チェックも不可欠である。ステップS108で残コピー回数が残っており、かつコピー先のメディアに十分な空き容量があると判断できれば、デジタルコピーモジュール35はディスク上の携帯端末向け保護コンテンツを指定されたメディアへコピーする(ステップS109)。この間、バイトコードアプリケーションはデジタルコピーモジュール35にコピーの進捗を問い合わせることで、現在のコピー進捗を把握することができ、コピー進捗状況をユーザに表示することができる。携帯端末向け保護コンテンツのデータコピーが完了すると、デジタルコピーモジュール35は携帯端末向け保護コンテンツを復号するための復号鍵をデジタルコピーサーバ36から取得する(ステップS110)。復号鍵の取得は、シリアルID,コンテンツID,メディアID,MKBの4つのデータをネットワークI/Fを介してデジタルコピーサーバ36に送信し、デジタルコピーサーバ36が持つ秘密鍵を元にコピー先メディアで携帯端末向け保護コンテンツを復号するための復号鍵をデジタルコピーサーバ36側で作成し、デジタルコピーモジュール35はデジタルコピーサーバ36側で作成された復号鍵を受け取り、コピー先の保護領域に復号鍵の書込みを行う(ステップS111)。 
 以上のように本実施形態によれば、オンメディアライブラリ28及びデジタルコピーモジュール35は、端末内ローカル通信によって、リードオンリーメディア105に予め記録されている携帯端末向け保護コンテンツを、セキュアなメモリカード104にコピーさせるので、再生装置のメーカーは、そのようなメディア間コピー機能の利用を、特定したコンテンツプロバイダに利用させることができる。これにより、メディア間コピー機能を利用したコンテンツの作成に弾みを付け、コンテンツの充実化を図ることができる。
 (第3実施形態)
 第1実施形態は、デジタルコピーのコピーソースとなるリードオンリーメディア105が、動作モードオブジェクト、バイトコードアプリケーションを記録したリードオンリーメディア105であるとして説明をした。本実施形態では、この記録媒体が、“BD-ROM”であるとして説明を行う。図11は、BD-ROM(以降、“BD”と称する場合もある)の構成を示した図である。本実施形態においては、映画等のAVコンテンツを再生するためのAVアプリケーションを主眼においてBD-ROMを説明するが、BD-ROMをCD-ROMやDVD-ROMのようにコンピュータ用途の記録媒体として利用することも当然ながら可能である。BD-ROMは、他の光ディスク、例えばDVDやCDなどと同様にその内周から外周に向けて螺旋状に記録領域を持ち、内周のリード・インと外周のリード・アウトの間に論理データを記録できる論理アドレス空間を有している。また、リード・インの内側にはBCA(Burst Cutting Area)と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、著作権保護技術などに利用され、記録媒体の物理的なシリアルIDを示すPMSN(Pre-recorded Media Serial Number)が記録されている。
 論理アドレス空間には、ファイルシステム情報(ボリューム)を先頭に映像データなどのアプリケーションデータが記録されている。ファイルシステムとは、UDFやISO9660などのことであり、通常のPCと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっており、255文字のファイル名、ディレクトリ名を読み出すことが可能である。
 本実施の形態の場合、BD-ROM上のディレクトリ、ファイル構造は、ルートディレクトリ(ROOT)直下にBDMVディレクトリ、CERTIFICATEディレクトリ及びEMOVEディレクトリが置かれている。BDMVディレクトリはBD-ROMで扱うAVコンテンツや管理情報などのデータが記録されているディレクトリであり、CERTIFICATEディレクトリは配下にdiscroot.crt(ファイル名固定)ファイルが存在し、アプリケーションの署名検証に用いられる証明書が記録されている。
 例えば、BDMVディレクトリ配下のデータが本編コンテンツに対応する。例えば本編コンテンツに含まれるデジタルAVストリームのフォーマットにおける格納方式は、BD-Video方式であり、保護方式は、AACS方式である。
 EMOVEディレクトリには携帯端末視聴用のAVコンテンツや管理情報が記録されている。
 例えば、EMOVEディレクトリ配下のデータが携帯端末向け保護コンテンツに対応する。図11に示す例では、例えばDATA1ディレクトリ、DATA2ディレクトリ、DATA3ディレクトリにそれぞれ異なる携帯端末向け保護コンテンツが記録されている。
 例えば携帯端末向け保護コンテンツに含まれるデジタルAVストリームのフォーマットにおける格納方式は、SD-Video方式であり、保護方式は、CPRM方式である。
 BDMVディレクトリの配下には、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDJOディレクトリ、JARディレクトリと呼ばれる5つのサブディレクトリが存在し、BDMVディレクトリには、index.bdmv,MovieObject.bdmvの2種類のファイルが配置されている。STREAMディレクトリには、いわばデジタルストリーム本体となるファイルを格納しているディレクトリであり、拡張子m2tsが付与されたファイル(xxx.m2ts[“xxx”は可変、拡張子”m2ts”は固定])が存在する。PLAYLISTディレクトリには、拡張子mplsが付与されたファイル(xxx.mpls[“xxx”は可変、拡張子”mpls”は固定])が存在する。CLIPINFディレクトリには、拡張子clpiが付与されたファイル(xxx.clpi [“xxx”は可変、拡張子”clpi”は固定])が存在する。JARディレクトリには、拡張子jarが付与されたファイル(xxx.jar[“xxx”は可変、拡張子”jar”は固定])が存在する。BDJOディレクトリには、拡張子bdjoが付与されたファイル(xxx.bdjo[“xxx”は可変、拡張子”bdjo”は固定])が存在する。
 拡張子”m2ts”が付与されたファイルは、MPEG-TS(TransportStream)形式のデジタルAVストリームであり、ビデオストリーム、1つ以上のオーディオストリーム、1つ以上の副映像ストリームを多重化することで得られる。ビデオストリームは映画の動画部分を、オーディオストリームは映画の音声部分を、副映像ストリームは、映画の字幕をそれぞれ示している。
 拡張子”clpi”が付与されたファイルは、デジタルAVストリームのそれぞれに1対1に対応するストリーム管理情報である。ストリーム管理情報は、デジタルAVストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、GOPの先頭位置を示すエントリーマップ(EP_map)をもっている。
 拡張子”mpls”が付与されたファイルは、プレイリスト情報を格納したファイルであり、ストリームの再生区間(「In Time/Out Time」)が記録されている。
 拡張子”jar”が付与されたファイルは、Javaアーカイブファイルであり、BD-Jオブジェクトを用いて動的なシナリオ制御を行うバイトコードアプリケーション(BD-Jアプリケーション)のプログラムが記述されている。BD-ROM上のコンテンツの再生単位を示す各タイトルの再生をBD-Jアプリケーションから制御したい場合は、このファイルを必要とする。このアーカイブファイルは、パーミッションリクエストファイルを含み、パーミッションリクエストファイルは、バイトコードアプリケーションと、ローカルホストとの間のソケット通信を許可している
 拡張子“bdjo”が付与されたファイルは、BD-Jモードの動作モードオブジェクトを格納したファイルである。
 index.bdmv(ファイル名固定)は、BD-ROM全体に関するインデックステーブルであり、映画作品のプロバイダを特定する識別子であるorganizationID(32bit)や、プロバイダが提供するBD-ROMのそれぞれに割り当てられた識別子であるdiscID(128bit)等の情報を持ち、再生装置へのディスク挿入後に、index.bdmvが最初に読み出されることで、再生装置においてディスクが一意に認識される。加えて、index.bdmv にはBD-ROMにおいて再生可能となる複数のタイトルと、個々のタイトルを規定するBD-Jオブジェクトとを対応付けて示すテーブルが含まれる。
 MovieObject.bdmv(ファイル名固定)は、ナビゲーションコマンドを格納したファイルであり、プレイリストの選択やプレーヤ状態レジスタ、プレーヤ設定レジスタの読み出し/書き込みを行わせる。以上が、BDMVディレクトリについて説明である。つづいて、EMOVEディレクトリについて説明する。
 EMOVEディレクトリの配下には、BD-ROMに記録されているコンテンツと、内容的に同一となるコンテンツを携帯端末で視聴するためのAVデジタルストリームや管理情報が記録されており、複数のコピーソース格納ディレクトリが作成される。図中のDATA01,DATA02・・・・DATAxxは、それぞれがコピーソース格納ディレクトリである。コピーソース格納ディレクトリとは、デジタルコピーの対象となる単位であり、一個のBD-ROMにおいて、コピーの対象が、4つ存在するなら、EMOVEディレクトリの配下には、DATA01ディレクトリ、DATA02ディレクトリ、DATA03ディレクトリ、DATA04ディレクトリという4つのコピーソース格納ディレクトリが記録されることになる。
 コピーソース格納ディレクトリは、様々な個数だけ作成することができるから、ストリーム形式が異なる複数の携帯端末向け保護コンテンツや、再生内容のバリエーションが異なる複数の携帯端末向け保護コンテンツ等、デジタルコピーの需要が高い携帯端末向け保護コンテンツを、オーサリング時に予め作成しておくことができる。以上がBD-ROMのディレクトリ構成、ファイル構成についての説明である。またコピーソース格納ディレクトリに格納されている一式のファイルは、デジタルコピーの対象となる。コピーソース格納ディレクトリに格納されることでデジタルコピーの対象となる一式のファイルを、“コピーソースユニット”という。
 図12は、ストリーム形式が異なる、複数の携帯端末向け保護コンテンツが記録されているBD-ROMのディレクトリ構成の一例を示す。この一例は、携帯端末向け保護コンテンツにVGA(Video Graphics Array)形式のもの、ワンセグ形式のものという2つのバージョンが存在することを前提にしており、これら2つのバージョンのそれぞれに対応する携帯端末向け保護コンテンツを、別個のコピーソースユニットとして扱い、DATA01ディレクトリ、DATA02ディレクトリに記録している。
 本図におけるDATA01ディレクトリは、VGA形式の携帯端末向け保護コンテンツに対応するコピーソース格納ディレクトリである。DATA01ディレクトリの配下にはEMOV_INF、MGR_DATA、PRG_MGR、PRG001.PGI、MOV001.SD1の5つのファイルが存在する。EMOV_INFは、コピー情報ファイルであり、携帯端末向けコンテンツをそれぞれ一意に識別するために割り当てられたコンテンツID(以降、「CID」と称する場合もある)が記録されている。EMOV_INFは、個々のコピーソース格納ディレクトリ毎に存在するので、個々のコピーソース格納ディレクトリ毎にコンテンツIDを変えることが可能であるし、また、コンテンツIDを同一にすることも可能である。コンテンツIDをコピーソース格納ディレクトリ毎に変化させれば、デジタルコピーサーバ36では、複数のコンテンツIDに配置された個々の携帯端末向け保護コンテンツを、別々のコンテンツとして扱って管理することができる。一方、コンテンツIDを複数のコピーソース格納ディレクトリ間で同一にすれば、デジタルコピーサーバ36では、複数のコンテンツIDに配置された個々の携帯端末向け保護コンテンツを、1つのコンテンツとして扱うことができる。
 MOV001.SD1は、暗号化されたMPEG4形式のビデオストリームであり、個々のピクチャデータの解像度は640×480である。ビデオストリームの内部には、ランダムアクセスのための情報が含まれている。デジタルストリームに対応するMOV001.SD1は例えば所定の暗号化方式(例えば、CPRM方式)で暗号化される。所定の暗号化方式(例えば、CPRM方式)で暗号化されたデジタルストリームを復号するためのキー情報(タイトルキー)はBD-ROM内には記録されていないので、不正に再生できないよう保護されている。
 PRG001.PGIは、プレイリスト情報に該当する情報であり、MOV001.SD1の再生順序を示すと共に、ビデオストリーム、オーディオストリームの符号化方式や携帯端末向けコンテンツのタイトル名を示す。BD-ROMにおける本編コンテンツのプレイリストは、複数のAVストリームの再生順序を定義することで構成され、本編コンテンツにおけるプレイリストと、AVストリームとの比率は、1対多である。これに対して、携帯端末向け保護コンテンツにおけるプレイリストと、AVストリームとの比率は、1対1である。これは、携帯端末向け保護コンテンツには、対話的な再生制御が予定されず、単に携帯機器でAVストリームを視聴するだけの単純な再生制御に制約されていることを意味する。
 MGR_DATAには、携帯端末向けコンテンツのレジューム位置が記録されている。
 PRG_MGRは、携帯端末向けコンテンツのトータルの再生時間が記録されている。 
 DATA02ディレクトリは、ワンセグ形式の携帯端末向け保護コンテンツに対応するコピーソース格納ディレクトリである。このDATA02ディレクトリにおいて、EMOV_INF、MGR_DATA、PRG_MGR,PGR001.PG1が存在する点は、DATA01ディレクトリと同じである。一方、MOV001.SD1の代わりにMOV001.Sx1が存在し、DATA01ディレクトリにはないMOV001.MAI、MOV001が存在する点は、DATA01ディレクトリとの差異である。
 MOV001.Sx1は、MPEG4-AVC形式のデジタルストリームを格納したストリームファイルであり、個々のピクチャデータの解像度は320×240である。
 MOI(Media Object Information)ファイルは、EntryPESPacketNumテーブルを含む。EntryPESPacketNumテーブルは、MPEG4-AVCのIDRピクチャを包含していると判定されたPESパケットの先頭から、次のPESパケットの先頭までに存在するTSパケットの個数を示す。
 MAI(Media Attribute Information)ファイルは、MPEG4-AVCのデジタルストリームを構成するTSパケット不連続期間の開始時刻、終了時刻、位置情報、時刻オフセットを示す。
 DATA01ディレクトリにおけるMOV001.SD1には、その内部にランダムアクセスのための情報が存在する。これに対して、MOV001.Sx1には、そのようなランダムアクセスのための情報は存在しない。その代わりに、MOV001.Sx1には、MOV001.MAI、MOV001.MOIが対応付けられている。つまり、ワンセグ形式の携帯端末向け保護コンテンツは、ストリーム毎の管理情報が追加された形式になっている。このようにBD-ROMには、様々なストリーム形式に対応した携帯端末向け保護コンテンツが、複数のコピーソース格納ディレクトリに予め記録されているので、デジタルコピーにあたっては、つまりMPEG4形式、MPEG4-AVC形式のうち、所望のストリーム形式に合致した携帯端末向け保護コンテンツを選択することができる。トランコードを行うことなく、所望のストリーム形式のコンテンツを持ち出しに供することができるので、BD-ROMに複数のコピーソース格納ディレクトリが存在することの意義は大きい。本図におけるDATA03ディレクトリ、DATA04ディレクトリは、その他の格納形式、例えば、QuickTimeの形式やWindows(登録商標) Media Playerの形式で、持ち出し視聴用ためのコピーソースユニットを格納してもよい。しかし、これらの形式まで言及すると説明が煩雑になるので、これらの形式については説明を省略する。
 続いて、このリードオンリーメディア105におけるアプリケーションの管理の仕方について説明する。
 図13(a)は、index.bdmvファイルとタイトルの関係の一例を示す図である。タイトルとはアプリケーションとAVストリームを組にした再生単位であり、index.bdmvファイルにはディスク上のタイトル構成が記載されており、ディスク上の各タイトルと、対応するアプリケーション(BD-JモードタイトルであればBD-Jアプリケーション、HDMVモードタイトルであればシナリオプログラム)の参照関係を管理している。
 図13(a)の一例では、「First Play」、「TopMenu」、「Title#1」、「Title#2」、「Title#3」が存在する。
 「Top Menu」はリモコンのメニューキーを押したときやタイトル再生が終了したときに再生されるタイトルであり、主にタイトルの選択や、字幕/音声の言語選択を行うことに用いられる。このタイトルの選択がなされるとBD-Jオブジェクト(99999.bdjo)に含まれるアプリケーション管理テーブルに従い、アーカイブファイル(99999.jar)にて定義されメニュー表示BD-Jアプリケーションの起動が、再生装置に命じられる。
 「First Play」はBD起動時に自動的に再生されるタイトルであり、主にBDの利用規約表示などに用いられる。
 「Title#1」は、例えば本編映像のタイトルであり、このタイトルの選択がなされるとBD-Jオブジェクト(00001.bdjo)に含まれるプレイリストアクセス情報に従い、プレイリスト情報ファイル(00001.mpls)を用いてデジタルストリーム(00001.m2ts)の再生が行われる。BD-Jオブジェクト(00001.bdjo)に含まれるアプリケーション管理テーブルに従い、アーカイブファイル(00001.jar)にて定義される本編再生BD-Jアプリケーションの起動が、再生装置に命じられる。
 「Title#2」は、例えば特典映像のタイトルであり、このタイトルの選択がなされるとBD-Jオブジェクト(00002.bdjo)に含まれるプレイリストアクセス情報に従い、プレイリスト情報ファイル(00002.mpls)を用いてデジタルストリーム(00002.m2ts)の再生が行われる。
 「Title#3」は、例えばデジタルコピーに対応するタイトルであり、このタイトルの選択が行われると、デジタルコピーのGUI等を管理するデジタルコピー管理BD-Jアプリケーションのアーカイブファイル(88888.bdjo)と、オンメディアライブラリのアーカイブファイル(11111.jar)とがロードされる。このオンメディアライブラリのアーカイブファイルの中には、e-MoveLibrary.classというクラスファイルが存在し、デジタルコピー管理BD-Jアプリケーションには、このクラスファイルを取り込む旨の宣言文“ClassPass=e-MoveLibrary”が存在する。この宣言によって、デジタルコピー管理BD-Jアプリケーション内のAPIコールと、オンメディアライブラリ内のAPIとのリンクがなされる。
 ここで、Title#3を構成するデジタルコピー管理BD-Jアプリケーションとオンメディアライブラリ28とは、別々のアーカイブファイルに分けて記録しても良いし、1つのJARファイルにまとめて記録しても良い。
 上述に示す例は単なる一例である。例えば「Title#1」に対応付けられたBD-Jオブジェクトに含まれるプレイリストアクセス情報にプレイリストが示されなければ、デジタルストリームの再生は行われない。
 また、「Title#3」に対応付けられたBD-Jオブジェクトに含まれるプレイリストアクセス情報に再生可能なプレイリストを示せば、アプリケーション管理テーブルに示されるBD-Jアプリおよびオンメディアライブラリ28の実行と並行して、BD-Jオブジェクトに含まれるプレイリストアクセス情報に従うプレイリスト再生が再生装置で行われることになる。
 図13(b)は、各タイトルのBD-Jオブジェクトにおけるアプリケーション管理テーブルの内容、プレイリストアクセス情報の内容を示す。
 Top Menuに対応するBD-Jオブジェクト(99999.bdjo)に含まれるアプリケーション管理テーブルには、メニュー表示BD-Jアプリケーションの識別番号である99999が記載されている。よって、Top Menuの選択がなされるとBD-Jオブジェクト(99999.bdjo)に含まれるアプリケーション管理テーブルに従い、アーカイブファイル(99999.jar)にて定義されるメニュー表示BD-Jアプリケーションの起動が再生装置に命じられる。
 Title#1に対応するBD-Jオブジェクト(00001.bdjo)に含まれるアプリケーション管理テーブルには、本編再生BD-Jアプリケーションの識別番号である00001が記載されている。よって、Title#1の選択がなされるとBD-Jオブジェクト(00001.bdjo)に含まれるアプリケーション管理テーブルに従い、アーカイブファイル(00001.jar)にて定義される本編再生BD-Jアプリケーションの起動が再生装置に命じられる。
 また、BD-Jオブジェクト(00001.bdjo)に含まれるプレイリストアクセス情報には、プレイリスト情報ファイル(00001.mpls)の識別番号である00001が記載されている。よって、Title#1の選択がなされると、プレイリスト情報ファイル(00001.mpls)を用いたストリームファイル(00001.m2ts)の再生が再生装置に命じられる。
 Title#2に対応するBD-Jオブジェクト(00002.bdjo)に含まれるアプリケーション管理テーブルには、特典映像BD-Jアプリケーションの識別番号である00002が記載されている。よって、Title#3の選択がなされるとBD-Jオブジェクト(00002.bdjo)に含まれるアプリケーション管理テーブルに従い、アーカイブファイル(00002.jar)にて定義される特典映像BD-Jアプリケーションの起動が再生装置に命じられる。
 また、BD-Jオブジェクト(00002.bdjo)に含まれるプレイリストアクセス情報には、プレイリスト情報ファイル(00002.mpls)の識別番号である00002が記載されている。よって、Title#1の選択がなされると、プレイリスト情報ファイル(00002.mpls)を用いたストリームファイル(00002.m2ts)の再生が再生装置に命じられる。
 Title#3に対応するBD-Jオブジェクト(88888.bdjo)に含まれるアプリケーション管理テーブルには、デジタルコピー管理BD-Jアプリの識別番号である(88888)と、オンメディアライブラリ28の識別番号である11111とが記載されている。よって、Title#3の選択がなされるとBD-Jオブジェクト(88888.bdjo)に含まれるアプリケーション管理テーブルに従い、アーカイブファイル(88888.jar)にて定義されるデジタルコピー管理BD-Jアプリケーションの起動と、アーカイブファイル(11111.jar)にて定義されるオンメディアライブラリ28の起動とが再生装置に命じられる。
 以上の具体例においてオンメディアライブラリ28及びデジタルコピー管理BD-Jアプリケーションは、Title#3にのみ存在し、Title#3のBD-Jオブジェクトにおけるアプリケーション管理テーブルに、これらオンメディアライブラリ28及びデジタルコピー管理BD-Jアプリケーションは記載されている。よって、Title#3のタイトル番号がタイトル番号レジスタに設定され、Title#3がカレントタイトルになった際、オンメディアライブラリ28及びデジタルコピー管理BD-Jアプリケーションについて、クラスロードがなされ、オンメディアライブラリ28及びデジタルコピー管理BD-Jアプリケーションは、バイトコードインタプリタによる実行に供される。
 一方、オンメディアライブラリ28、デジタルコピー管理BD-Jアプリケーションは、Title#1、Title#2の構成要素ではなく、Title#1、Title#2のアプリケーション管理テーブルには記述されていないので、Title#3の再生が終了して、Title#1又はTitle#2の再生が開始した際、オンメディアライブラリ28及びデジタルコピー管理BD-Jアプリケーションの動作は終了する。以上のように、オンメディアライブラリ28及びデジタルコピー管理BD-Jアプリケーションは、タイトルを生存区間としたアプリケーションシグナリングに供されることになる。
このように、オンメディアライブラリ28の生存区間を、デジタルコピー管理BD-Jアプリケーションの生存区間と同じとする(この例では、Title#3の開始時点から終了時点までの間がオンメディアライブラリ28およびデジタルコピー管理BD-Jアプリケーションの実行可能な生存区間とする)ことで、オンメディアライブラリ28の生存区間と異なる生存区間のBD-Jアプリケーション(この例では、Title#3とは異なるTitle#1、またはTitle#2のアプリケーション管理テーブルにのみ記載されるBD-Jアプリケーション)がオンメディアライブラリ28を利用することを制限することができる。
 以上のように本実施形態によれば、機器固有機能制御部33を制御するためのオンメディアライブラリ28やこのオンメディアライブラリ28を用いて機器固有機能を実行するデジタルコピー管理BD-Jアプリケーション、機器固有機能の対象となるSD_VideoコンテンツがBD-ROMに記録されてユーザに供給されるので、ユーザは、パソコンを利用することなく、BD-ROMが再生装置に装填されている状態のまま、デジタルコピーを実行することができる。
 (第4実施形態)
 本実施形態では、機器固有機能制御部33のコマンド処理部609が解釈可能なコマンドの種別について説明する。コマンド処理部609が解釈可能なコマンドとしては、以下のものがある。
 1.初期化要求コマンド(REQUEST_INITIALIZE)
 初期化要求コマンドは、デジタルコピーモジュール35を初期化し、他のソケットコマンドを使用可能な状態にする。もし一旦初期化がなされれば、幾つかのパラメータ(シリアルID、ソースロケーション、サーバURL、セキュアなメモリカード104スロット、レジューム点)はリセットされる。コマンドが再度実行され、その実行に成功した際、これらのパラメータは、リセットされる。
 このコマンドは、転送中、転送後、ファイナライジングの何れかの状態において有効となる。このコマンドのレスポンスには、OKレスポンス、フェータルエラーレスポンスがある。OKレスポンスは、デジタルコピーモジュール35の初期化及びアクティベートを示す。フェータルエラーは、フェータルエラーのために初期化が失敗したことを示す。
 2.チェックチケットコマンド(REQUEST_CHECKTICKET)
 チェックチケットコマンドは、コピーチケットを、コピーのためにパラメータ設定コマンドで設定されたパラメータを用いてデジタルコピーサーバ36にコピーチケットをチェックさせることを要求する。このコマンドがコールされる前に、プロセスで必要な全てのパラメータは、設定コマンドで設定されねばならない。コピーチケットをチェックした後、オンメディアライブラリ28は、コピーコマンドでデータ転送の実行を要求することができる。このコマンドは、デジタルコピーモジュール35が初期化状態、レディ状態にある際に発行することができる。このコマンドには引数はない。レスポンスには、OKレスポンス、インバリッドエラーレスポンス、接続エラーレスポンスがある。ビジーエラーレスポンスがある。
 OKレスポンスは、コピーチケットのチェックが受け入れられたことと、デジタルコピーモジュール35がチケットレスポンスの受信に成功したことを示す。インバリッドエラーレスポンスは、プロセスのためのパラメータのうち、幾つかが未設定であり、チェックチケットに失敗したことを示す。接続エラーレスポンスは、レスポンスがデジタルコピーサーバ36に到達しないか、又は、デジタルコピーサーバ36から正しい応答を受け取っていないことを示す。
 ビジーエラーレスポンスは、BD-ROMがAV再生プロセスのためにロックされていて、デジタルコピーモジュール35がBD-ROMをアクセスすることができないことを示す。このエラーは、BD-ROM再生プロセスとは異なるプロセスで、デジタルコピーモジュール35が実行されている際、発生する。このエラーコードがリターンした際、オンメディアライブラリ28はこのコマンドの代わりにチェックチケットバイデータフィード要求を試みねばならない。
 フェータルエラーレスポンスは、フェータルエラーのために、チケット要求が失敗したことを示す。
 3.チェックチケットバイデータフィードコマンド(REQUEST_CHECKTICKET_BYDATAFEED)
 チェックチケットバイデータフィードコマンドは、コピーチケットを、コピーのためにパラメータ設定コマンドで設定されたパラメータを用いてデジタルコピーサーバ36にチェックさせることを要求する。このコマンドがコールされる前に、プロセスで必要な全てのパラメータは、設定コマンドで設定されねばならない。チケットをチェックした後、オンメディアライブラリ28は、コピーコマンドでデータ転送の実行を要求することができる。このコマンドは、デジタルコピーモジュール35が初期化状態、レディ状態にある際に発行することができる。このコマンドがコールされた際、設定コマンドで設定されたソースロケーションは無視され、このコマンドで特定されたバイナリデータを、ターゲット情報ファイルとして用いて、特定されたバイナリデータを使用する。
 このコマンドは、チェックチケット要求がビジーエラーで返る場合のみコールされる。よって、チェックチケット要求がビジーエラーで返る可能性がない場合、デジタルコピーモジュール35はこのコマンドを実装にする必要はない。
 引数は、情報ファイルの長さ、情報ファイルである。レスポンスとしては、OKレスポンス、インバリッドエラーレスポンス、接続エラーレスポンス、フェータルエラーレスポンスがある。OKレスポンスは、状態番号、残りコピー回数である。OKレスポンスは、コピーチケットのチェックが受け入れられたことと、デジタルコピーモジュール35がチケットレスポンスの受信に成功したことを示す。インバリッドエラーレスポンスは、プロセスのためのパラメータのうち、幾つかが未設定であり、コピーチケットのチェックに失敗したことを示す。接続エラーレスポンスは、レスポンスがデジタルコピーサーバ36に到達しないか、又は、デジタルコピーサーバ36から正しい応答を受け取っていないことを示す。
 ノーサポートレスポンスは、デジタルコピーモジュール35がこのコマンドをサポートしていないことを示す。チケットチェック要求がビジーで返る可能性がない場合、デジタルコピーモジュール35はこのコマンドを実装にする必要はなく、ノーサポートエラーレスポンスを返す。チケットチェック要求がビジーでリターンする可能性がある場合、デジタルコピーモジュール35はこのコマンドを実装して、ノーサポートレスポンスを返すべきではない。フェータルエラーレスポンスは、フェータルエラーのために、チケット要求が失敗したことを示す。
 
 4.コピー要求コマンド(REQUEST_COPYコマンド)
 コピー要求コマンドは、出力装置設定コマンドで設定されたセキュアなメモリカード104にコンテンツを出力する。このコマンドは非同期であり、オンメディアライブラリ28は、進捗取得コマンドを通じてこの転送プロセスをチェックすることができる。転送プロセス中にAV再生が実行された場合、AV再生が終わるまで、コピー速度が減じられ、データ転送プロセスは一時停止する。コピープロセスは、キャンセル要求がインボークされた場合、クローズ要求がインボークされた場合、BD-ROMがイジェクトされた場合、キャンセルされる。
 キャンセル後に、部分的にコピーされたデータをクリアするかどうかは実装マターとなる。このコマンドがコールされる前に、チェックチケット要求コマンドによってコピーチケットのチェックがなされねばならない。このコマンドは、レディ状態で有効になる。このコマンドのレスポンスには、OKレスポンス、フェータルエラーレスポンスがある。OKレスポンスは、コピー要求が受け入れられ、デジタルコピーモジュール35がコンテンツのコピーを開始した際に発行される。フェータルエラーレスポンスは、デジタルコピーモジュール35がコピーに失敗した旨を示す。
 
 5.コピーバイデータフィード要求コマンド(REQUEST_COPY_BYDATAFEEDコマンド)
 コピーバイデータフィード要求コマンドは、出力装置設定コマンドで特定されたセキュアなメモリカード104に、コンテンツを出力する。このコマンドは、非同期であり、オンメディアライブラリ28は、プロセス取得コマンドを介してコピー進捗をチェックすることができる。転送中にAV再生が実行された場合、AV再生が終了するまで、コピー速度は減少するか停止する。このコピープロセスは、キャンセル要求がインボークされた場合、クローズ要求がインボークされた場合、BD-ROMがイジェクトされた場合、キャンセルされる。キャンセル後、部分的にコピーされたデータをクリアするかどうかは実装マターである。このコマンドがコールされる前に、チェックチケットコマンドのチェックがなされなければならない。このコマンドは、デジタルコピーモジュール35がレディ状態にある場合のみ有効となる。このコマンドがコールされた場合、ソースロケーションコマンドで設定されたソースロケーションは無視され、データフィード要求コマンドで特定されたバイナリデータをターゲットコンテンツとして用いる。このコマンドはコピー要求がビジーでリターンした場合のみコールされる。よって、このコマンドは、コピー要求がビジーエラーでリターンする可能性はない。デジタルコピーモジュール35はこのコマンドを実装にする必要はない。引数としては、管理データファイル、プログラム管理ファイル、プログラムファイル、ムービーファイルがある。このコマンドに対するレスポンスには、OKレスポンス、ノーサポートレスポンス、フェータルエラーレスポンスがある。OKレスポンスは、コピー要求が受け入れられ、コンテンツのコピーをデジタルコピーモジュール35に開始させることを示す。
 ノーサポートレスポンスは、デジタルコピーモジュール35がこのコマンドをサポートしていないことを示す。コピー要求がビジーエラーでリターンする可能性がない場合、デジタルコピーモジュール35はこのコマンドを実装にする必要はなく、ノーサポートエラーをリターンすればよい。デジタルコピーモジュール35は、このコマンドを実装して、ノーサポートエラーをリターンしなくてもよい。
 フェータルエラーレスポンスは、フェータルエラーによって、コピーを開始させることはできないことを示す。
 6.データフィード要求コマンド(REQUEST_DATAFEEDコマンド)
 データフィード要求コマンドは、コピーのために特定されたデータブロックのコピーを開始させる。オンメディアライブラリ28は、このコマンドを、コピーバイデータフィード要求が成功した場合のみ、コールすることができる。同じファイル名のファイルが連続して特定された場合、オンメディアライブラリ28は、特定したファイルにデータを追加する。オンメディアライブラリ28は、複数のファイルのコピーを連続して要求せねばならない。カレントファイルのコピーを完了する前に、他のファイルを特定すべきではない。データブロックのサイズは、64Kバイト以下でなければならない。ファイルの終わりに到達すれば、データブロックの長さを“0”とする。
 引数となるのは、BD-ROMに記録されたファイルのファイル名、データブロック長、データブロックのバイナリデータである。OKレスポンスは、データブロックのコピーがサクセスした旨を示す。ノーサポートレスポンスは、デジタルコピーモジュール35がこのコマンドをサポートしていない旨を示す。フェータルエラーレスポンスは、デジタルコピーモジュール35がコピーに失敗した旨を示す。転送状態でこのエラーが発生した場合、デジタルコピーモジュール35は停止状態に移行せねばならない。
 7.キャンセル要求コマンド(REQUEST_CANCELコマンド)
 キャンセル要求コマンドは、カレントのプロセスのキャンセルを要求する。もしカレントのプロセスのキャンセルに成功した場合、部分的にコピーされたデータは、セキュアなメモリカード104から削除される。このコマンドは、デジタルコピーモジュール35が転送中/転送後状態にある場合のみ有効になる。
 8.ファイナライズ要求コマンド(REQUEST_FINALIZEコマンド)
 ファイナライズ要求コマンドは、キーダウンロードと、プロセスのファイナライズとをデジタルコピーモジュール35に要求する。デジタルコピーモジュール35が一旦ファイナライズを開始すれば、オンメディアライブラリ28はファイナライズをキャンセルすることはできない。レスポンスとしては、OKレスポンス、接続エラーレスポンス、フェータルエラーレスポンスがある。OKレスポンスは、デジタルコピーサーバ36がキーダウンロード要求を受け入れ、デジタルコピーモジュール35がキーダウンロードレスポンスの受け入れに成功したことを示す。接続エラーレスポンスは、デジタルコピーモジュール35がデジタルコピーサーバ36に到達できないこと、正しいレスポンスがデジタルコピーサーバ36からのレスポンスではなかったことを示す。フェータルエラーレスポンスは、フェータルエラーのためにキーダウンロード要求が失敗したことを示す。
 9.クローズ要求コマンド(REQUEST_CLOSEコマンド)
 クローズ要求コマンドは、クローズ操作を完了した後、デジタルコピーモジュール35をクローズし、プロセスのためのリソースを開放して、デジタルコピーモジュール35は非初期化状態に戻ることをデジタルコピーモジュール35に命じるコマンドである。このコマンドは、どのステートでもコールされる。最終状態でこのコマンドがコールされた場合、最終プロセスが完了するまで、クローズ操作はブロックされる。転送中又は転送後状態でこのコマンドがコールされた場合、キャンセル操作が実行され、クローズ操作が開始する。レスポンスとしては、クローズが成功した旨を示すOKレスポンス、フェータルエラーのためにコマンドが失敗したことを示すFATALレスポンスがある。
 10.サーバURL設定コマンド(SET_SERVERURL)
 サーバURL設定コマンドは、コピープロセスのために接続すべきデジタルコピーサーバ36のURLを設定する。このコマンドが成功完了した際、直前のサーバURLは、新たなサーバURLによって上書きされる。レスポンスとしては、プロセスにおいてサーバURLの設定が成功した旨を示すOKレスポンス、フェータルエラーのためにコマンドが失敗したことを示すフェータルレスポンスがある。空白文字が特定された場合、以前設定したURLが有効になる。
 11.ソースロケーション設定コマンド(SET_SRCLOCATION)
 ソースロケーション設定コマンドは、コピーすべきコンテンツのソースロケーションを設定する。このソースロケーションは、リードオンリーメディア105上に存在せねばならない。このコマンドが成功完了した際、直前のソースロケーションは、新たなソースロケーションによって上書きされる。引数は、インサートされたリードオンリーメディア105におけるディレクトリを示す絶対パスである。ソースロケーション設定のためのパス名は、/mnt/bdrom/EMOVE/DATA01にエンクローズされねばならない。特定されたファイルパスは、有効なコンテンツを含む必要がある。
 レスポンスとしては、コピープロセスにおいてソースロケーションの設定が成功した旨を示すOKレスポンス、フェータルエラーのためにコマンドが失敗したことを示すフェータルエラーレスポンス、インバリッドレスポンスの何れかがある。OKレスポンスは、プロセスのために設定に成功した位置を示す。インバリッドレスポンスは、特定されたパス名が実在するディレクトリを特定していない、特定されたディレクトリがBD-ROMに位置していない、特定されたディレクトリが有効なコンテンツを有していないという理由で発生する。
 12.シリアルID設定コマンド(SET_SERIALID)
 シリアルID設定コマンドは、このコピープロセスのために特定されたシリアルIDを設定する。シリアルIDが設定済みである場合、このコマンドが成功完了した際、直前のシリアルIDは、新たなシリアルIDによって上書きされる。レスポンスとしては、プロセスにおいてシリアルIDの設定が成功した旨を示すOKレスポンス、フェータルエラーのためにコマンドが失敗したことを示すレスポンスの何れかがある。
 
 13.出力装置設定コマンド(SET_OUTPUTDEVICE)
 出力デバイス設定コマンドは、コピープロセスのためのドライブデバイスのスロットを設定する。スロットが設定済みである場合、このコマンドが成功完了した際、直前のターゲットスロットは、新たなスロットによって上書きされる。レスポンスとしては、プロセスにおいて成功設定した出力装置を示すOKレスポンス、フェータルエラーのためにコマンドが失敗したことを示すレスポンスの何れかがある。
 14.レジューム設定コマンド(SET_RESUME)
 レジューム設定コマンドは、プロセスのためのレジューム点を特定する。このコマンドによってレジューム点が特定された場合、デジタルコピーモジュール35は、プロセスの完了後にセキュアなメモリカード104の管理データファイルを更新する。これは、レジューム点からSZ_DATAVコンテンツを再生するためである。レジューム点が設定されれば、このコマンドが成功完了した際、直前のレジューム点が新たなレジューム点によって上書きされる。レジューム点は、完了状態においてのみ、ターゲットのセキュアなメモリカード104に反映される。完了状態において、このコマンドがコールされれば、即座に、ターゲットセキュアなメモリカード104に反映される。引数としては、秒単位のオフセットを指定することができる。レスポンスとしては、プロセスにおいて成功設定したレジューム点を示すOKレスポンス、フェータルエラーのためにコマンドが失敗したことを示すレスポンスの何れかがある。
 15.リボケーションリスト設定コマンド(SET_REVOCATIONLIST)
 リボケーションリスト設定コマンドは、デバイスリスト長と、リボケーションリストデバイスリストとをオペランドで指定する。このコマンドは、デジタルコピーモジュール35にリボケーションリストを設定する。リボケーションリストとは、過去に不正なコピー行為をしたとして、マークされている不正再生装置のリストであり、セキュアなメモリカード104に実装されている認証回路との処理認証で使用される。これは、リボケーションリストに示されている不正再生装置に、デジタルコピーを実行させないためである。チェックチケット要求コマンドをコールする前に、オンメディアライブラリ28は、リボケーションリストをデジタルコピーモジュール35にセットしなければならない。リボケーションリストが既に設定されている場合、前のリボケーションリストは、上記コマンドがサクセスした際、新たなリボケーションリストによって上書きされる。レスポンスとしては、プロセスのためにリボケーションリスト設定が成功したことを示すOKレスポンス、知名エラーのためにコマンドが失敗したことを示すFATALレスポンスがある。
 16.デバイスデバイスリスト取得コマンド(GET_DEVICELIST)
 デバイスデバイスリスト取得コマンドは、プロセスのために再生装置によってサポートされているセキュアなメモリカード104スロットのデバイスリストを取得する。このコマンドのレスポンスは、以下の形式であり、Xに番号付けされたカードスロット、USB接続を通じてXに番号付けされたカードスロット、Xに番号付けされたその他の装置を羅列したものである。レスポンスは、コマンドが成功完了したことを示す。複数のスロットの1つとして位置付けられているローカルストレージは、その名称が、レスポンスメッセージの終わりで指示される。
 17.デバイス情報取得コマンド(GET_DEVICEINFO)
 デバイス情報取得コマンドは、特定されたスロットにインサートされたセキュアなメモリカード104の総容量/有効容量を取得する。このスロット名は、デバイスデバイスリスト取得コマンドで取得したものの1つであり、レスポンスとしては、総スペース、フリースペース、プログラム数がある。デバイス情報取得コマンドがサクセスした場合、ターゲットセキュアなメモリカード104がインサートされ、有効である場合、レスポンスされたメッセージは、総容量/有効容量、プログラム数を含む。
 18.進捗取得コマンド(GET_PROGRESS)
 進捗取得コマンドは、データ転送の進捗状況情報を取得する。レスポンスとしては、残りサイズ/総サイズとなる。未転送であれば、単にOKのみを返す。転送完了であれば(デジタルコピーモジュール35が転送後、ファイナラリジング、完了)、(0/総サイズ)が返される。転送プロセスが停止又はキャンセルされれば(停止、キャンセル)、コピーされた総サイズが返される。
 19.状態取得コマンド(GET_STATE)
 状態取得コマンドは、未初期化、初期化、レディ、転送中、転送後、ファイナライジング、完了、キャンセル、ストップの何れかを示す。
 20.パラメータ取得コマンド(GET_PARAMETER)
 パラメータ取得コマンドは、カレントステート、カレントソースロケーション、カレント出力デバイス、カレントサーバURL、カレントシリアルID、カレントレジューム点を取得するためのコマンドである。幾つかのパラメータが存在しない場合、空白文字列が返ることになる。
 その他、コマンド送信とは関係なく、非同期に、オンメディアライブラリ28に出力されるイベントには、以下の非同期イベントがある。ここでの非同期イベントには、セキュアなメモリカード104が装填されたことを示す非同期デバイス状態インサートイベント、セキュアなメモリカード104がイジェクトされたことを示す非同期装置状態イジェクトイベント、非同期状態変化イベントがある。非同期状態変化イベントは、セキュアなメモリカード104の容量無し、セキュアなメモリカード104のライトプロテクト、セキュアなメモリカード104のI/Oエラーの発生を通知する。
 非同期状態変化イベントは、以下のi),ii)に該当する場合を除き、デジタルコピーモジュール35の状態が変化した際に発生する。
 i)デジタルコピーモジュール35の状態は変化していないのにデジタルコピーモジュール35が初期化されてサクセス非同期状態変化イベントが初期化状態を示す場合。
 ii)デジタルコピーモジュール35の状態が変化していないのにデジタルコピーモジュール35がレディ状態となってチェックチケット要求コマンドがサクセスし、レディ状態を示す非同期状態変化イベントが発生した場合。
 以上のコマンドを用いてデジタルコピーを実現するための具体的な通信シーケンスについて説明する。
 図14は、アプリ内API呼出しの詳細を示すシーケンス図である。このシーケンスは、オンメディアライブラリ28APIを用いて記述されている。本図の横方向には、デジタルコピー管理BD-Jアプリ、オンメディアライブラリ28、デジタルコピーモジュール35が、それぞれ配置されている。縦方向には、複数の時間軸を描いている。時間軸上の各時点が、メッセージの送受信のタイミングとなる。本図におけるシーケンスは、a.機器確認フェーズ、b.初期化フェーズ、c.コピー先状態確認フェーズ、d.パラメータセットフェーズ、e.残コピー回数確認フェーズ、f.コピー開始フェーズ、g.コピー進捗確認フェーズ、h.鍵書込みフェーズからなる。
 a.機能確認フェーズは、BD-JアプリケーションがBCManager#getInstanceAPIを呼び出すAPIコール、及び、その呼び出しに対するデジタルコピーライブラリによるイベントスロゥ(BCManager又はUnsupportedOperationExceptionのスロゥ)というアプリケーション間通信によって構成される。
 BCManager#getInstanceAPIは、デジタルコピーモジュール35を制御するための各種メソッドを持つBCManagerクラスのインスタンスを取得する。再生装置がデジタルコピーに対応していなかった場合はUnsupportedOperationExceptionをスローする。
 b.初期化フェーズは、BD-JアプリケーションがBCManager#addBCStatusChangeListenerAPIを呼び出すAPIコール、BCManager#initialBCを呼び出すAPIコール、及び、その呼び出しに対するデジタルコピーライブラリによるBCManagerInitialEventイベントのスロゥというアプリケーション間通信によって構成される。
 BCManager#addBCStatusChangeListenerAPIは、デジタルコピーモジュール35の状態変化をモニタリングするためのAPIである。デジタルコピーモジュール35の状態変化を検知すると、変化した状態をBD-Jアプリケーションへ通知する。
 BCManager#initializeBCAPIは、デジタルコピーモジュール35の初期化を行うためのAPIである。このAPIが呼ばれると、オンメディアライブラリ28は、デジタルコピーモジュール35との接続を行う。接続に失敗した場合は、UnsupportedOperationExceptionをスローする。初期化が成功すれば、BCInitializedEventをBD-Jアプリケーションに通知する。
 c.コピー先状態確認フェーズは、BD-JアプリケーションがBCManager#getDeviceListAPIを呼び出すAPIコール、その呼び出しに対するデジタルコピーライブラリによるイベントスロゥ、BD-JアプリケーションがBCOutputDevice#getFreeSpaceAPIを呼び出すAPIコール、その呼び出しに対するデジタルコピーライブラリによるイベントスロゥというアプリケーション間通信によって構成される。
 BCManager#getDeviceListAPIは、再生装置がコピー先としてサポートしているメディア一覧(SDカード、USBメモリ)を取得するためのAPIである。それぞれのメディアはBCOutputDeviceクラスのインスタンスとして表現される。BCOutputDeviceクラスはインスタンスが示すメディアの種類と番号(SD_1、USB_1)を取得するメソッド(BCOutputDevice#getName)、空き容量を取得するメソッド(BCOutputDevice#getFreeSpace)、及びトータル容量を取得するメソッド(BCOutputDevice#getTotalSpace)を持つ。図14では、空き容量を取得するメソッド(BCOutputDevice#getFreeSpace)の呼び出しに対する応答として、空き容量の一例として10737418240(byte)を返している。
 d.パラメータセットフェーズは、BCManager#setServerURLAPIを呼び出すAPIコール、BCManager#setSourceLocationAPIを呼び出すAPIコール、BCManager#setOutputDeviceAPIを呼び出すAPIコール、BCManager#setSerialIdAPIを呼び出すAPIコールから構成される。d.パラメータセットフェーズでセットされるパラメータは、具体的には、シリアルID,コピー元のコンテンツの位置、デジタルコピーサーバ36のURL、コピー先のメディアである。コンテンツIDはコピー対象の携帯端末向け保護コンテンツのEMOV_INFファイルに記載されている値をもちいる。
 コピー元のコンテンツの位置は、携帯端末向けコンテンツが記録されているディレクトリまでの絶対パスで示される。例えば、"/mnt/bdrom/EMOVE/DATA01"等である。この場合、"/mnt/bdrom"はBD-ROMメディアのマウントポイントに当たる。
 デジタルコピーサーバ36のURLは、グローバルネットワーク上のサーバを示すURLが指定される。例えば"http://xxx.yyy.zzz"等である。
 コピー先メディアは、再生装置がサポートしているコピー先メディア一覧の中から指定される。BD-Jアプリケーションはデジタルコピーモジュール35に対し、現在の再生装置でサポートしているメディア一覧を要求すると、「<メディアの種類>_<番号>」の形のリストが送られてくる。例えば、再生装置がSDカードスロットとUSBメモリスロットの両方をそれぞれ、1つずつサポートしていた場合、「SD_1 USB_1」というリストが送られてくる。SDカードスロットなし、USBメモリスロットが2つ持つ場合は「USB_1 USB_2」というリストが送られることとなる。コピー先一覧を受け取ったBD-Jアプリケーションは、それらの一覧をユーザに提示し、どのメディアにコピーするか、ユーザの指示を受け、ユーザが選択したメディアを、コピー先メディアとして指定することになる。
 BCManager#setServerURL(URL)APIは、デジタルコピーモジュール35へデジタルコピーサーバ36のURLをセットするするためのAPIである。
 BCManager#setSourceLocation(File srcdir)は、デジタルコピーモジュール35へコピー元のコンテンツ位置をセットするためのAPIである。コンテンツ位置は、携帯端末向けコンテンツが記録されているディレクトリまでの絶対パスで示される("/mnt/bdrom/EMOVE/DATA01"等)。
 BCManager#setOutputDevice(device)は、デジタルコピーモジュール35へコピー先メディアをセットするためのAPIである。コピー先メディアはBCManager#getDeviceList()で取得できたメディアリストの中から選択される。
 BCManager#setSerialId(byte[])は、デジタルコピーモジュール35へシリアルIDをセットするためのAPIである。
 e.残コピー回数確認フェーズは、BD-JアプリケーションがBCManager#checkTicketを呼び出すAPIコール、及び、その呼び出しに対するイベントスロゥというアプリケーション間通信によって構成される。
 BCManager#checkTicketAPIは、残コピー回数確認をデジタルコピーモジュール35へ要求するためのAPIである。デジタルコピーモジュール35は残コピー回数の確認が要求されると、現在セットされているパラメータを用いてデジタルコピーサーバ36へ残コピー回数の問い合わせを行う。得られた残コピー回数はBCCheckResponseクラスのインスタンスとしてBD-Jアプリケーションにリターンされる。BD-JアプリケーションはBCCheckResponse#remainingTimesOfCopy()を呼び出すことで残コピー回数を確認することができる。また、残コピー回数が1回以上残っていれば、BCReadyEventがBD-Jアプリケーションに通知される。
 f.コピー開始フェーズは、BD-JアプリケーションがBCManager#makeCopyAPIを呼び出すAPIコール、及び、その呼び出しに対するデジタルコピーライブラリによるイベントスロゥというアプリケーション間通信によって構成される。
 BCManager#makeCopyAPIは、デジタルコピーモジュール35へコピー開始を要求するためのAPIである。オンメディアライブラリ28はデジタルコピーモジュール35へコピー開始を要求した後、BD-Jアプリケーションには進捗状況を示すBCProgressインスタンスをリターンし、コピー処理はデジタルコピーモジュール35において非同期で行われる。
 g.コピー進捗確認フェーズは、BD-JアプリケーションがBCProgress#remainingAPIを呼び出すAPIコール、及び、その呼び出しに対するデジタルコピーライブラリによるイベントスロゥ、BD-JアプリケーションがBCProgress#totalAPIを呼び出すAPIコール、及び、その呼び出しに対するデジタルコピーライブラリによるイベントスロゥ、というアプリケーション間通信によって構成される。
 BCProgress#total()は、これまでコピーしたトータルのコピーバイト数を取得するためのAPIである。
 BCProgress#remaining()は、残りのコピーバイト数を取得するためのAPIである(図14では、BCProgress#remaining()の呼び出しに対する応答としての残りのコピーバイト数の一例として524288000(byte)を返している)。コピー処理が完了するとBCTransferredEventがBD-Jアプリケーションに通知される。
 h.鍵書込みフェーズは、BD-JアプリケーションがBCManager#finalizeBCAPIを呼び出すAPIコール、及び、その呼び出しに対するイベントスロゥというアプリケーション間通信、BD-JアプリケーションがBCManager#cancelCopyを呼び出すAPIコール、及び、その呼び出しに対するイベントスロゥ、BD-JアプリケーションがBCManager#closeAPIを呼び出すAPIコール、及び、その呼び出しに対するデジタルコピーライブラリによるBCManager又はUnsupportedOperationExceptionをスローするというイベントスロゥというアプリケーション間通信によって構成される。
 BCManager#finalizeBC()は、デジタルコピーモジュール35へ復号鍵の書込みを要求するためのAPIである。復号鍵の書込みが完了するとBCCompleteEventがBD-Jアプリケーションに通知される。
 BCManager#cancelCopy()は、デジタルコピーモジュール35のコピー処理をキャンセルするためのAPIである。キャンセルに成功するとBCCancelEventがBD-Jアプリケーションに通知される。
 BCManager#close()は、デジタルコピーモジュール35が確保しているリソースを開放し、デジタルコピープロセスを終了するためのAPIである。
 以上が、オンメディアライブラリ28、デジタルコピーモジュール35、デジタルコピーサーバ36間の通信シーケンスについての説明である。続いて、の詳細について、
 図15は、デジタルコピーモジュール35の状態遷移を示す図である。デジタルコピーモジュール35はデジタルコピープロセスの進捗に応じて以下9個の状態を遷移する。本図における丸枠は、デジタルコピーモジュール35が取りうる状態を模式的に示し、矢印は、状態遷移のトリガとなるべき事象を意味する。この矢印に付された注釈が、状態遷移のトリガになる事象の具体的な名称である。
 本図に示された機器固有機能制御部33の各状態について説明する。
 NOT_INIT:この状態はデジタルコピーモジュール35がまだ初期化されていないことを示す。この状態はBD-ROMがロードされた時点でのデジタルコピーモジュール35の初期状態である。他の状態においてBD-JアプリケーションがBCManager#close()を呼び出し、デジタルコピープロセスを終了した場合、デジタルコピーモジュール35は再びNOT_INIT状態に戻る。この状態でBCManager#initializeBC()が呼ばれると、INITIALIZED状態に遷移し、BD-JアプリケーションへはBCInitializedEventが通知される。
 INITIALIZED:この状態はデジタルコピーモジュール35が初期化され、BD-Jアプリケーションからデジタルコピープロセスの機能を呼び出せる状態であることを示す。この状態で、BD-Jアプリケーションが必要パラメータ(例えば、BCManager#setServerURL(URL)の呼び出しにより設定されるデジタルコピーサーバ36のURL、BCManager#setSourceLocation(File srcdir) の呼び出しにより設定されるコピー元のソースロケーション、BCManager#setOutputDevice(device) の呼び出しにより設定されるコピー先メディア、BCManager#setSerialId(byte[])により設定されるシリアルID)をセットし、BCManager#checkTicket()を呼び出して残コピー回数が1回以上残っていた場合はREADY状態に遷移し、BD-JアプリケーションへはBCReadyEventが通知される。残コピー回数が残っていなかった場合は、READY状態には遷移せず、INITIALIZED状態のままとなる。デジタルコピープロセス実行後、READY,CANCELED,STOPPED,もしくはCOMPLETED状態においてBD-JアプリケーションからBCManager#initializeBC()が呼ばれると、再びINITIALIZED状態に遷移し、BD-JアプリケーションへはBCInitializedEventが通知される。
 READY:この状態はデジタルコピープロセスに必要なパラメータが全てセットされ、かつそれらが有効であり、デジタルコピーモジュール35のコピー準備が整ったことを示す。この状態でBCManager#makeCopy()が呼ばれると、TRANSFERRING状態へ遷移する。
 TRANSFERRING:この状態は携帯端末向け保護コンテンツのデータコピーが開始されたことを示す。携帯端末向け保護コンテンツのデータコピーが完了するとTRANSFERRED状態へ遷移し、BD-JアプリケーションへはBCTransferredEventが通知される。また、データコピー完了前にBCManager#cancelCopy()が呼ばれると、データコピーはキャンセルされ、CANCELED状態に遷移し、BD-JアプリケーションへはBCCancelEventが通知される。データコピー中にコピー先メディアが取り出される等により、エラーが発生した場合はSTOPPED状態に遷移し、BD-JアプリケーションへはBCStopByErrorEventが通知される。
TRANSFERRED:この状態は携帯端末向け保護コンテンツのデータコピーが完了し、デジタルコピーモジュール35において復号鍵書込み準備が整ったことを示す。この状態でBCManager#finalizeBC()が呼ばれると、デジタルコピーモジュール35はFINALIZING状態へ遷移する。また、この状態でBCManager#cancelCopy()が呼ばれると、CANCELED状態に遷移し、BD-JアプリケーションへはBCCancelEventが通知される。
 FINALIZING:この状態は、デジタルコピーサーバ36から復号鍵の取得、及びコピー先メディアへ取得した復号鍵の書込み処理が行われていることを示す。一旦この状態に入ると、BD-JアプリケーションはBCManager#cancelCopy()を呼んでもキャンセルできず、キャンセル要求は拒否されることになる。復号鍵書込み中にコピー先メディアが取り出される等により、エラーが発生した場合はSTOPPED状態に遷移し、BD-JアプリケーションへはBCStopByErrorEventが通知される。復号鍵の書込みが完了すると、デジタルコピーモジュール35はCOMPLETED状態へ遷移し、BD-JアプリケーションへはBCCompleteEventが通知される。
 COMPLETED:この状態は、携帯端末向け保護コンテンツのデータコピー及び対応する復号鍵の書込みが完了し、デジタルコピープロセスが成功したことを示す。この状態で、BCManager#initializeBC()が呼ばれると、再びINITIALIZED状態に遷移し、BD-JアプリケーションへはBCInitializedEventが通知される。
CANCELED:この状態は、携帯端末向け保護コンテンツのデータコピーが途中でキャンセルされたことを示す。途中までコピー済みのデータは、CANCELED状態への遷移時にクリアされる。
 STOPPED:この状態は、エラー発生により、データコピーもしくは復号鍵書込みが失敗したことを示す。エラー発生の原因としては、空き容量不足、コピー先メディアが書き込み保護されているため、書込みできない、コピー先メディアが途中で取り出された、コピー先メディアが破損しておりI/Oエラーが発生した等が考えられる。どの原因でコピーに失敗したかは、STOPPED状態遷移時に発生するBCStopByErrorEventインスタンスに詳細情報が記録されており、BD-JアプリケーションはBCStopByErrorEventを通してエラー原因を把握することができる。以上がデジタルコピー実行の際に、BD-Jアプリケーションとオンメディアライブラリ28間でやり取りされるAPI呼び出しの内容である。
 各フェーズのAPI呼出しのそれぞれに対応して、モジュールには、デジタルコピーソケットコマンドが送信される。このコマンドを用いれば、図8における端末内ローカル通信は、図16のシーケンス図のように詳細化される。
 図16は、端末内ローカル通信の詳細を示すシーケンス図であり、オンメディアライブラリ28とデジタルコピーモジュール35間でやり取りを行うデジタルコピーソケットプロトコルの一例を示す。このシーケンスは、デジタルコピーソケットコマンドを用いて記述されている。本図の横方向には、オンメディアライブラリ28、デジタルコピーモジュール35が、それぞれ配置されている。縦方向には、複数の時間軸を描いている。時間軸上の各時点が、コマンド及びレスポンスの送受信のタイミングとなる。本図に示したコマンド及びレスポンスは、これらの時間軸間を行き来する。このシーケンスは、b.初期化フェーズ、c.コピー先状態確認フェーズ、d.パラメータセットフェーズ、e.残コピー回数確認フェーズ、f.コピー開始フェーズ、g.コピー進捗確認フェーズ、h.鍵書込みフェーズからなる。
 図16では、例えば再生装置がSDカードスロットのみをサポートするような構成である場合を例に説明を行う。
 b.初期化フェーズは、REQUEST_INITIALIZEコマンドの送信と、レスポンス(SD_1)の受信というコマンド・レスポンス型通信、GET_ASYNCPORTコマンドの送信と、レスポンスの受信というコマンド・レスポンス型通信から構成される。
 REQUEST_INITIALIZEコマンドは、BD-JアプリケーションからBCManager#initializeBCが呼び出された際、発行されるソケットコマンドである。デジタルコピーモジュール35の初期化要求が行われて、デジタルコピーモジュール35との通信に使うポート番が特定されれば、そのポートに対して、このコマンドが送信される。
 デジタルコピーモジュール35はオープン中のポートを通じ、REQUEST_INITIALIZEという文字列を受信すると、初期化要求が行われたと判断し、パラメータ(例えば、以前に設定されたデジタルコピーサーバ36のURL、コピー元のソースロケーション、コピー先メディアの出力デバイス、シリアルID)のクリアと状態遷移通知のための非同期イベント用ポートを新規にオープンした後、初期化が完了したという旨を知らせるため、ソケットコマンドを受け取ったポートを通じて、OKという文字列を送信する。オンメディアライブラリ28は、ソケットコマンドを送ったポートから、OKという文字列を受け取ると初期化が完了したとみなす。
 GET_ASYNCPORTコマンドは、状態遷移通知のための非同期通知用に開かれたポート番号を取得するためのコマンドであり、デジタルコピーソケットプロトコルは2種類のポートで構成され、1つはデジタルコピーソケットコマンド用(同期コマンド)、もう一つはデジタルコピーモジュール35の状態遷移通知用(非同期イベント)である。デジタルコピーソケットコマンド用のポートは、オンメディアライブラリ28からデジタルコピーモジュール35へコマンドを投げる形でやり取りが行われるが、状態遷移通知用のポートはデジタルコピーモジュール35からオンメディアライブラリ28へ一方的にイベントが通知される形となる。BD-JアプリケーションからBCManager#addBCStateChangeListnerが呼ばれると、オンメディアライブラリ28は状態遷移通知用ポートのモニタリングを開始し、デジタルコピーモジュール35から送られている状態遷移通知をオンメディアライブラリ28APIのイベントに変換し、BD-Jアプリケーションに状態遷移を通知することになる。
 c.コピー先状態確認フェーズは、GET_DEVICELISTコマンドの送信と、レスポンス(SD_1)の受信というコマンド・レスポンス型通信、GET_DEVICEINFO_SDコマンドの送信と、レスポンス(<total space><free space>)の受信というコマンド・レスポンス型通信から構成される。
 GET_DEVICELISTコマンドは、デジタルコピーモジュール35へサポートしているメディアのリストを要求するためのコマンドであり、BD-Jアプリケーションから、BCManager#getDeviceListが呼ばれ再生装置がコピー先としてサポートしているメディアのリストが要求された際、オンメディアライブラリ28に対して、本コマンドが送信される。
 GET_DEVICELISTコマンドに対するレスポンスは、サポートしているメディアのリストであり、ソケットコマンド用のポートを通じて返す。サポートしているメディアのリストは、<メディアの種類>_<番号>という形で返され、複数メディアをサポートしている場合は、それぞれ空白文字で区切られる(例:SD_1<sp>USB_1、<sp>は空白文字)。図16では、再生装置が例えばSDカードスロットのみをサポートしている場合にはSD_1が応答として返される例を示している。
 GET_DEVICEINFOコマンドは、その引数にメディアの種類の指定が可能であり、その指定された種類のメディアのトータル容量、空き容量をレスポンスとして変える。BD-JアプリケーションからBCOutputDevice#getTotalSpaceもしくは BCOutputDevice#getFreeSpaceが呼ばれ、トータル容量、空き容量の情報提供が要求されると、オンメディアライブラリ28はGET_DEVICEINFOコマンドをソケットコマンド用ポートを通じてデジタルコピーモジュール35へ送り、トータル容量、空き容量の情報を受け取る。コマンド名と引数の間には空白文字を設ける。例えば、SD_1(種類:SDカード、番号:1)の情報を要求する場合は、GET_DEVICEINFO<sp>SD_1という文字列をソケットコマンド用ポートを通じてデジタルコピーモジュール35へ送ることになる。
 d.パラメータセットフェーズは、SET_SERVERURLコマンドの送信と、レスポンス(OK)の受信というコマンド・レスポンス型通信、SET_SRCLOCATIONコマンドの送信と、レスポンス(OK)の受信というコマンド・レスポンス型通信、SET_OUTPUTDEVICEコマンドの送信と、レスポンスの受信というコマンド・レスポンス型通信、SET_SERIALIDコマンドの送信と、レスポンスの受信というコマンド・レスポンス型通信から構成される。デジタルコピーに必要なパラメータをセットする場合も同様に、デジタルコピーソケットコマンドを通じてオンメディアライブラリ28からデジタルコピーモジュール35へ値が伝わり、デジタルコピーモジュール35内にパラメータがセットされる。コマンド名と引数は空白文字で区切る。
 e.残コピー回数確認フェーズは、REQUEST_CHECKTICKETコマンドの送信と、OK<remaining times of copy>レスポンスの受信というコマンド・レスポンス型通信から構成される。
 REQUEST_CHECKTICKETコマンドは、コピーの残りを問合せるためのコマンドであり、レスポンスとしてその残りコピー回数が通知される。必要なパラメータのセットが完了し、BD-JアプリケーションからBCManager#checkTicket()が呼ばれると、オンメディアライブラリ28は、デジタルコピーモジュール35へREQUEST_CHECKTICKETコマンドを送る。デジタルコピーモジュール35は、REQUEST_CHECKTICKETコマンドを受け取ると、セットされたパラメータを元に、コンテンツID,シリアルID及びメディアIDを取り出し、デジタルコピーサーバ36へこれら3つの値を送って残コピー回数を確認する。デジタルコピーサーバ36から得られた残コピー回数は、REQUEST_CHECKTICKETコマンドの戻り値として、オンメディアライブラリ28へ渡す。
 f.コピー開始フェーズは、REQUEST_COPYコマンドの送信と、TRANSFERREDレスポンスの受信というコマンド・レスポンス型通信から構成される。
 REQUEST_COPYコマンドは、SD-Videoコンテンツのコピー開始を命じるコマンドであり、BD-JアプリケーションからBCManager#makeCopy()が呼ばれると、オンメディアライブラリ28は、デジタルコピーモジュール35へREQUEST_COPYコマンドを送り、コピー開始を要求する。デジタルコピーモジュール35は、残コピー回数が1回以上残っていることが確認できれば、データコピーを開始し、REQUEST_COPYコマンドの戻り値としてOKを返す。
 g.コピー進捗確認フェーズは、GET_PROGRESSコマンドの送信と、TRANSFERREDレスポンスの受信というコマンド・レスポンス型通信から構成される。
 GET_PROGRESSコマンドは、トータルのコピーバイト数と残りバイト数を取得するためのコマンドである。データコピー中にBCProgress#remaining()、もしくはBCProgress#total()がBD-Jアプリケーションから呼び出されると、オンメディアライブラリ28はGET_PROGRESSコマンドをデジタルコピーモジュール35に送り、デジタルコピーモジュール35から、トータルのコピーバイト数と残りバイト数を得て、BD-Jアプリケーションへその値を返す。データコピーが完了すると、デジタルコピーモジュール35はTRANSFERREDに遷移し、非同期イベント用のポートを通じて、オンメディアライブラリ28へTRANSFERREDに遷移したことが通知される。
 h.鍵書込みフェーズは、REQUEST_FINALIZEコマンドの送信と、OKレスポンス、FINALIZINGレスポンス、COMPLETEDレスポンスの受信というコマンド・レスポンス型通信から構成される。
 REQUEST_FINALIZEコマンドは、コンテンツID,シリアルID、メディアID及びMKBを取り出し、デジタルコピーサーバ36へこれら4つの値を送って復号鍵を得るためのコマンドである。データコピー完了後、BD-JアプリケーションからBCManager#finalizeBC()が呼ばれると、オンメディアライブラリ28は、デジタルコピーモジュール35へREQUEST_FINALIZEコマンドを送る。デジタルコピーモジュール35は、REQUEST_FINALIZEコマンドを受け取ると、セットされたパラメータを元に、コンテンツID,シリアルID、メディアID及びMKBを取り出し、デジタルコピーサーバ36へこれら4つの値を送って復号鍵を得る。デジタルコピーモジュール35は、得られた復号鍵をコピー先メディアであるセキュアなメモリカード104の保護領域へ書き込み、書き込み処理が完了すると、非同期イベント用のポートを通じて、オンメディアライブラリ28へCOMPLETEDに遷移したことを通知する。
 以上がオンメディアライブラリ28とデジタルコピーモジュール35間でやり取りされるデジタルコピーソケットプロトコルの内容である。上述したように、オンメディアライブラリ28とデジタルコピーモジュール35間でやり取りされるコマンド、イベント通知は全て再生装置内のローカル通信(ポートを用いたソケット通信)で行われる。残コピー回数の確認及び復号鍵の取得に関しては、デジタルコピーモジュール35とデジタルコピーサーバ36間でグローバル通信が行われる。
 図17は、BD-Jアプリケーションによる機能確認から初期化までの処理手順を示すフローチャートである。ステップS1では、システムプロパティ“digitalcopy.port”が存在するか否かを判定し、存在する場合、システムプロパティ“digitalcopy.port”に示されるポートを用いてソケット接続を行う(ステップS2)。
 システムプロパティ“digitalcopy.port”が存在しない場合、プライベートポート又はフリーポートを用いてソケット接続を行う(ステップS3)。その後、BCManager#getINstanceAPIをコールし(ステップS4)、ステップS5で、BCManagerがリターンされたか否かを判定する。リターンされた場合、BCManager#addBCStateChangeListnerAPIをコールし(ステップS6)、BCManagerinitializeをコールする(ステップS7)。BCInitializedイベントがスローされたかどうかを判定する(ステップS8)。ステップS5及びステップS8がYesであるなら、デジタルコピー可能であると判定する。ステップS5、ステップS8のどちらかがNoであるならデジタルコピー不可能であると判定する。
 図18は、コピー先状態確認からパラメータセットまでの処理手順を示す。BCManagergerdeviceListAPIをコールし(ステップS31)、デバイスリストである“A Array of Supported devices”がリターンされるのを待つ(ステップS32)。リターンされれば、サポートデバイスの中に、セキュアなメモリカード104が存在するか否かを判定し(ステップS33)、セキュアなメモリカード104が存在しない場合、処理を中断する。存在する場合、セキュアなメモリカード104のスロットを一覧表示し(ステップS34)、ユーザによるスロットの選択を待つ(ステップS35)。スロットiが選択されれば、ステップS36において、スロットiを引数で指定したBCOutputDevice#getFreeSpaceAPIをコールし(ステップS36)、ステップS37において、残りサイズのリターン待ちを行う。リターンされれば、ステップS38において、残りサイズが、SD_VIDEOディレクトリの予想サイズよりも大きいかどうかを判定する。小さければステップS35に移行して再度の選択を促す。ステップS38がYesであれば、ステップS39においてシリアルIDの入力を促すGUIを表示し、ステップS40において、シリアルIDの入力待ちを行い、ステップS41においてコピーソース格納ディレクトリの選択を行う。入力されれば、BCManagersetServerURLAPI,BCManagerSourceLocationAPI,BCManagersetOutputDeviceAPI、BCManagersetSerialIDAPIのコールを行い(ステップS42)、これらのAPIコールに対してサクセスが返されるかどうかを判定する。
 図19は、コピーソース格納ディレクトリの選択手順の詳細を示すサブフローチャートである。BD-ROMのEMOVEディレクトリの配下にある複数のコピーソース格納ディレクトリに対応するストリーム形式を一覧表示し(ステップS51)、何れのストリーム形式を選択するかという操作を、ユーザから受け付ける(ステップS52)。そしてそのような選択がなされれば、選択されたストリーム形式xxに対応するコピーソース格納ディレクトリxxのファイルパスである/mnt/bdrom/EMOVE/DATAxxを特定する(ステップS53)。そうして、特定したファイルパスである/mnt/bdrom/EMOVE/DATAxxを引数としたBCManager SetServerURLのコールを生成する(ステップS54)。
 ファイルパス/mnt/bdrom/EMOVE/DATAxxで指示されたコピーソース格納ディレクトリxxの配下にある、コピー情報格納ディレクトリxxには、そのコピーソース格納ディレクトリxx固有のコンテンツIDxxが存在するので、機器固有機能制御部33は、このコンテンツIDxxと、シリアルIDと、メディアIDyとをサーバに送信することで、携帯端末向け保護コンテンツのコピーの残りコピー回数の確認を行い、また、この復号鍵の取得にあたっては、このコンテンツIDxxと、シリアルIDと、メディアIDyとの組合せをサーバに送信する。
 以上のフローチャートでは、デジタルコピーにあたって、デジタルコピーの対象を、VGA形式及びワンセグ形式というように様々な形式の携帯端末向け保護コンテンツの何れかの中から任意に選択することができる。このように、形式が異なる様々な携帯端末向け保護コンテンツをリードオンリーメディア105に予め記録しておき、デジタルコピーに供することで、トランスコードを行うことなく、任意のストリーム形式の携帯端末向け保護コンテンツを、セキュアなメモリカード104にコピーすることができる。
 図20は、BD-Jアプリケーションによる残りコピー回数の確認から鍵書き込みまでの処理手順を示すフローチャートである。BCManagercheckTicketAPIをコールし(ステップS11)、BCReadyイベントが発行されたか(ステップS12)、レスポンスがなされたか(ステップS13)を判定する。ステップS14では、コピーの残りコピー回数が1つ以上であるか判定し、1以上であるなら、BCManagerMAKEをコールし(ステップS15)、BCProgressがリターンされるのを待つ(ステップS17)。以降、ステップS25において、進捗グラフを表示してから(ステップS25)、ステップS18~ステップS21のループを行う。このループは、BCProgress#remaingAPIをコールし(ステップS18)、残りバイト数の受信をして(ステップS19)、残りバイト数が0になったかどうかを判定し(ステップS20)、その残りバイト数に応じて、進捗バーを更新する(ステップS21)という処理を、ステップS20がYesと判定されるまで繰り返すものである。
 ステップS22は、BCtransferredEventを受信したかどうかの受信待ちであり、受信されれば、BCManagerfinalizeBCAPIをコールして(ステップS23)、BCCompleteイベントの受信待ちを行う。受信されれば、処理を終了する。
 以上のフローチャートの処理で表示される、表示画面について説明する。図21は、デジタルコピーの過程で、表示される表示画面の一例を示す図である。
 図21(a)は、セキュアなメモリカード104スロットの一覧表示の一例を示す。スロット1~3のそれぞれに対応するボタンから構成される。図21(b)は、シリアルIDの数値入力及びストリーム形式の選択のための入力画面を示す。図21(c)は、コピー進捗を表示するためのGUIを示す。図21(a)から(c)までのメニューは、コピー管理BD-Jアプリケーションによって表示されるものであり、本編コンテンツに含まれるビデオストリームの再生を伴うものなので、本編コンテンツに登場するキャラクターや本編コンテンツに関連するグッズを用いて、華やかな画面演出を行うことができる。
 図22は、デジタルコピーモジュール35の処理手順を示すフローチャートである。ステップS61において、REQUEST_INITIALIZEの受信待ちを行い(ステップS60)、REQUEST_INITIALIZEを受信すれば(ステップS61)、設定済みのカレントシリアルID、ソースロケーション、カレントサーバURL、出力デバイス、レジューム位置をリセットする。そしてGET_DEVICELISTの受信待ちを行い(ステップS62)、受信すれば、再生装置で有効になっているドライブのステータスをセンスする(ステップS63)。そして、各スロット番号に対応付けて、ドライブの状態を示すデバイスリストを生成してレスポンスとして返す(ステップS64)。ステップS65は、カレントURL、ソースロケーションのファイルパス、出力デバイス、シリアルIDについてのセットパラメータの受信待ちであり、ステップS66では、セットパラメータコマンドのオペランドをカレントサーバURL、ソースロケーション、出力デバイス、シリアルIDとして設定する。ステップS67は、CHECK_COPY_REQUESTの受信待ちであり、ステップS68では、カレントソースロケーションである/mnt/bdrom/EMOVE/DATAxxのEMOV_INFからコンテンツIDxxを取り出す。一方、カレント出力デバイスyに装填されたセキュアなメモリカード104からMIDyを取り出し(ステップS69)、コンテンツIDxxと、MIDyと、シリアルIDzとをサーバに設定して、残りコピー回数の検索を要求する(ステップS70)。その後、残りコピー回数の受信待ちとなり(ステップS71)、残りコピー回数を受信すれば、残りコピー回数をレスポンスとして返す(ステップS72)。ステップS73は、COPY_REQUESTの受信待ちであり、COPY_REQUESTを受信すれば、セキュアなメモリカード104にSD_VIDEOディレクトリ、MNG_INFOディレクトリ、PRG001ディレクトリを作成し(ステップS74)、DATAxxディレクトリのMGR_DATA、PRG_MGRを読み出してMNG_INFOディレクトリに書き込むよう指示し(ステップS75)、DATAxxディレクトリのPRG001,PGIと、これに関連するストリームファイルとを読み出して、PRG001ディレクトリに書き込む(ステップS76)。
 図23は、図22のフローチャートの続きである。ステップS77、ステップS78のループは、COPY_PROGRESSを受信したか(ステップS78)、書き込みが完了したか(ステップS79)の受信待ちを構成する。COPY_PROGRESSを受信すれば、総サイズ/残サイズをレスポンスとして返す(ステップS85)。書き込みが完了すれば、ステップS79でREQUEST_FINALIZEの受信待ちを行い、REQUEST_FINALIZEを受信すれば、カレント出力デバイスyに装填されたセキュアなメモリカード104からMKByを読み出し(ステップS80)、コンテンツIDxx,メディアIDy、MKBy、シリアルIDzとをサーバに送信して、タイトルキーの検索を要求する(ステップS81)。ステップS82は、復号鍵の受信待ちであり、復号鍵を受信すれば、ステップS83においてセキュアなメモリカード104と相互認証を行った後、ステップS84においてセキュアなメモリカード104のプロテクト領域に復号鍵を格納したVIDEO001.KEYを書き込む。
 以上のように本実施形態によれば、対話画面を通じて、シリアルIDの入力やストリーム形式の選択をユーザに行わせ、これに応じて、予めBD-ROMに記録されているストリーム形式固有の携帯端末向け保護コンテンツを、セキュアなメモリカード104に書き込むので、早期に希望のストリーム形式の携帯端末向け保護コンテンツをセキュアなメモリカード104に記録して、屋外に持ち出すことができる。
 (第5実施形態)
 これまでの実施形態では、組込みラィブラィの内容を明確にしていなかったが、本実施形態では、組込みラィブラィ25を詳細に説明する。
 組込ライブラリ25は、Java2Micro_Edition(J2ME) Personal Basis Profile(PBP 1.0)と、Globally Executable MHP specification(GEM1.0.2)for package media targetsといった基本パッケージと、エクステンションパッケージとから構成される。これらのパッケージのAPIを利用すれば、ネットワーク処理のためのjava.net、GUI処理のためのjava.awt、言語処理のためのjava.lang、記録媒体に対するI/O処理のためのjava.io、ユーティリティであるjava.util、メディアフレームワークのためのjavax.mediaといったクラスのメソッド、コンストラクタ、インターフェイス、イベントを用いた構造化プログラミングで、BD-Jアプリケーションを記述することができる。
 エクステンションパッケージ(BD-Jエクステンションと呼ばれる)は以下のライブラリから構成される。
 複数のデジタルストリームを用いたマルチアングル再生、複数のビデオストリームを用いたピクチャインピクチャ再生、複数のオーディオストリームを用いたオーディオミキシング再生、複数のグラフィクスストリームを用いたメニュー再生や字幕再生等、Java(TM) Media FrameWorkにはない、マルチパス型のプレイリスト情報を用いた独特の機能を実現するための「org.bluray.media」、
 ・デジタル放送サービスのホームプラットフォームで実現されている、"サービス"に基づくアプリケーションシグナリングを、"タイトル"にマップして動作させるための「org.bluray.ti」、アプリケーションの生存区間を管理するための「org.bluray.application」、
 ・キーイベントのための定数を定義し、映像再生との同期を実現するための「org.bluray.ui」、
 ・BD-ROMに記録されていないLocal Storage上のコンテンツ(off-discコンテンツ)を、BD-ROMに記録されたコンテンツ(on-discコンテンツ)にマウントさせるための「org.bluray.vfs」
 これらのライブラリは、java.net、java.awt、java.lang、java.io、java.util、javax.mediaクラスのメソッドからのインへリッドメソッドを含み、これらのクラスのインターフェイスをエンベデッドインターフェイス、スーパーインターフェイスとして、BD-ROM再生のための再生制御を規定する。このBD-JエクステンションのAPIを用いれば、java.net、java.awt、java.lang、java.io、java.util、javax.mediaクラスを用いたプログラミング技法の延長線上で、BD-Jタイトルを作成することができる。
 BD-Jエクステンションによって定義される機能的な構成要素を、模式的に描いたのが、図24である。図24は、図4に示したプラットフォーム部20における組込ライブラリ25のより具体的な構成を示す図である。本図に示すように、プラットフォーム部20における組込ライブラリ25のBD-Jエクステンションは、マージ管理モジュール41、メディア再生モジュール42、ファイルI/Oモジュール43、ネットワークモジュール44から構成される。なお、本図における再生制御部10、機器固有機能制御部33は、図4に示したものと同一であり、説明のために便宜的に記載している。
 マージ管理モジュール41は、BD-ROMと、ローカルストレージとを1つの仮想ファイルシステムとして統合する。仮想ファイルシステムは、ローカルストレージの個々の記録媒体におけるファイルシステム上のファイルに対して、別名アクセスのためのファイルパスを割り当て、別名アクセス用のファイルパスをロケータとして用いたファイルアクセスを、アプリケーションに実行させる。ここで、ローカルストレージファイルに対する別名アクセス用のファイルパスの割り当ては、マウント規則ファイルを引数で指定した上で、アプリケーションが仮想パッケージのクリエイトAPIをコールして、仮想パッケージを仮想ファイルシステムに生成させることでなされる。
 かかるコールによって作成される仮想パッケージとは、BD-ROM上のファイル以外の別のファイルが追加されたファイル構成、BD-ROM上のファイルの何れかが別のファイルに置き換えられたファイル構成を示す。そして、この仮想パッケージの実体は、上記ファイル追加後のファイル構成、及び/又は、上記ファイル置換後のファイル構成を示すファイル管理情報であり、BD-ROMからメモリに読み出されたファイル管理情報に新たなファイルエントリーを追加するか、又は、メモリに読み出されたファイル管理情報における一部のファイルエントリーを別のものに置き換えることで得られる。
 ここでマウント規則ファイルとは、ローカルストレージにおけるファイルパスと、別名アクセスのためのファイルパスとの対応付けをマークアップ言語のタグで記述したものである。そして、ローカルストレージ上のファイルに与えられる別名アクセス用のファイルパスは、BD-ROMにおけるBDMVディレクトリと、CLIPINFディレクトリ、PLAYLISTディレクトリ、STREAMディレクトリの何れかとを組合せたものである。
 アプリケーションのAPIコールによって、仮想パッケージが作成されれば、仮想パッケージ上のファイルをBD-ROMに対するロケータによって指定することができ、ローカルストレージ上のファイルは、あたかも、BD-ROMに記録されているかの如く扱うことができる。
 メディア再生モジュール42はバイトコードアプリケーションに対し、メディア再生制御のためのAPIを提供している。バイトコードアプリケーションがメディア再生制御APIを呼び出すと、メディア再生モジュールは対応するAV再生ライブラリ関数を呼び出し、AV再生制御を行う。
 ファイルI/Oモジュール43は、バイトコードアプリケーションからのBD-ROM、ローカルストレージ、記録型BDドライブ等の各メディアへのファイルアクセス要求の処理を行う。ネットワークI/Oモジュール44は、バイトコードアプリケーションに対し、ネットワーク制御のためのAPIを提供している。バイトコードアプリケーションからのネットワーク制御要求に従い、ネットワークI/Oモジュール44を使って、ネットワーク接続を行う。
 ネットワークI/Oモジュール44は、インターネットにおけるサーバとの接続を実現する。TCP/IP及びUDP/IPのうち、どちらかのプロトコルスタックがサポートされ、HTTPプロトコルを使用できることはネットワークI/Oモジュールの要件となる。物理的な接続は、Ethernet(登録商標),電話のそれぞれで違ってもよい。プラットフォームは、ネットワーク接続を利用する前に、認証されねばならず、またネットワーク接続のための適切なPermissionを得なければならない。以上が、組込ライブラリ25におけるBD-Jエクステンションについて説明である。つづいて、この組込ライブラリ25のBD-Jエクステンションを前提にした、オンメディアライブラリ28の特徴について説明する。
 本実施形態におけるオンメディアライブラリ28は、プロトコル解析専用の“デジタルコピーライブラリ”であり、バイトコードアプリケーションに対し、あたかも再生制御APIであるBD-JAPIを拡張したかのようなAPI(デジタルコピーライブラリAPI)を提供する。デジタルコピーモジュール35とのデータ送受信に用いるプロトコルは、個々のバイトコードアプリケーションに依存したものではなく、その詳細がデジタルコピーライブラリ内に隠蔽されたものになり、複数のバイトコードアプリケーションについて共通のプロトコルとして定義されている。このように構成することで、バイトコードアプリケーションはデジタルコピーモジュール35とのデータ送受信に用いるプロトコルを解析する必要がなくなり、プロトコル解析をライブラリで一元管理することが可能となるため、バイトコードアプリケーションの生産性を向上させることができる。オンメディアライブラリ28は、アーカイブファイルによって定義されるが、デジタルコピーライブラリにおけるパーミッションリクエストファイルは、バイトコードアプリケーションと、ローカルホストとの間のソケット通信を許可している。
 以上が組込ライブラリ25についての説明である。続いて、仮想ファイルシステムの作成に利用されるローカルストレージの詳細について説明する。かかるローカルストレージには、セキュアなメモリカード104を使用することができる。
 図25は、ローカルストレージとして使用されたセキュアなメモリカード104におけるディレクトリ構成を示す図である。ローカルストレージには大きく3種類の領域が存在し、1つはユーザから自由に読み書きできユーザにとって可視である領域「ユーザ領域」、もう一つはユーザからは読み書き不可能で、ユーザにとって不可視であり、著作権保護に対応したシステムのみ読み書きが許される保護された領域「保護領域」、最後に、ユーザからは読み書き不可能、システムからも書き込み不可能で、システムによる読み込みのみが許される領域「システム領域」である。ユーザ領域は、さらに追加コンテンツ領域とSDビデオ領域の2種類に分けられる。追加コンテンツ領域はBD-ROM再生時に補助的用いられるコンテンツが格納され、SDビデオ領域には主に携帯端末での再生を目的としたSDビデオ準拠のコンテンツ(ステップSDビデオコンテンツ)が格納される。追加コンテンツ領域とSDビデオ領域は共にローカルストレージのユーザ領域上のルートディレクトリ直下に存在する。追加コンテンツ領域を示すディレクトリ名配布媒体文字以内の固定値(BUDA)である。このBUDAディレクトリ以下(サブディレクトリとそれ以下のファイルも含む)に、アプリケーションはサーバからダウンロードしてきた追加ファイル等、任意のファイルを格納することが可能である。
 BUDAディレクトリ以下にはさらにOrganizationIDディレクトリとDiscIDディレクトリが存在し、特定のプロバイダ(Organization)に対応するディレクトリに、各BD-ROMに対応するディレクトリを設けることにより、各BD-ROMについてのダウンロードデータが個別に格納される。
 一方SDビデオ領域を示すディレクトリ名はSD_VIDEOであり、追加コンテンツ領域と同様、ユーザ領域上のルートディレクトリ直下に存在する。SD_VIDEOディレクトリ以下にはさらにSDビデオコンテンツ毎に分かれたSDビデオコンテンツディレクトリ(「PRGxxx」、“xxx”は可変)とSDビデオ領域全体の管理ファイルが格納されたSDビデオ管理ディレクトリ(「MGR_INFO」)が存在する。SDビデオコンテンツディレクトリには、上述のPRG001.PGI及びMOV001.SD1が記録され、SDビデオ管理ディレクトリには、上述のMGR_DATA及びPRG_MGRが記録される。
 ユーザからはアクセスできない保護領域上には、暗号化された携帯端末向け保護コンテンツを復号するための復号鍵(VIDEO001.KEY)が記録される。復号鍵へのアクセスは著作権保護に対応したシステムのみが可能である。
 ユーザからはアクセスできず、システムからも読み込みのみ許されるシステム領域には、前述の復号鍵生成に必要な鍵情報が記録されたメディアキーブロック(MKB)と、ローカルストレージに割り当てられているSDメモリーカード等の媒体を、媒体毎に一意に特定するための識別子であるメディアID(MID)が記録されている。メディアIDは同じ種類のメディアでも媒体毎に異なる値が割り振られている。
 セキュアなメモリカード104のうち、ローカルストレージとして使用されているものは、デバイスリストにおける表記が、BDJstorage=<devicename>というものになる。これは、ローカルストレージとして利用されているセキュアなメモリカード104と、そうでないセキュアなメモリカード104とを区別するためである。即ち、ローカルストレージとして利用されているセキュアなメモリカード104は、BD-ROMとの組合せで仮想ファイルシステムを形成していることが多い。かかるセキュアなメモリカード104に対してコンテンツが書き込れて、セキュアなメモリカード104がイジェクトされると、構築された仮想ファイルシステムが、破壊されることになり望ましくない。
 そこで、デジタルコピーモジュール35は、コピー先状態確認フェーズにおいて、各デバイスの状態確認が求められた際、デバイスリストとして、ローカルストレージとして利用されているセキュアなメモリカード104であるか否かという種別を、レスポンスとして返す。こうすることで、コピー管理を行うデジタルコピー管理BD-Jアプリは、セキュアなメモリカード104がローカルストレージとして使用されている場合、仮想ファイルシステムの構築中はセキュアなメモリカード104をイジェクトしないよう、具体的にいうと、仮想ファイルシステムにより構築された仮想パッケージ中のタイトルの再生中は、セキュアなメモリカード104をイジェクトしないよう警告表示を行うことができる。
 以上のように本実施形態によれば、仮想ファイルシステムが破壊されないような配慮を払いつつも、ローカルストレージとして利用されているセキュアなメモリカード104を、携帯端末向け保護コンテンツのコピー先として選ぶことができるので、記録媒体の利用効率が高まる。 
 (第6実施形態)
 これまでの実施形態では、規定のAPIにとらわれない様々な機能を呼び出すことを可能にする構成について述べたが、ディスク上のアプリケーションが制御できる範囲が拡大するとセキュリティの懸念が生まれてくる。第6実施形態では、よりセキュリティを強化した実施の形態の変形例について説明する。第6実施形態では前述の第1実施形態と同様の部分は省略し、これまでの実施形態との変更点のみを記載している点には注意されたい。記載していない部分はこれまでの実施形態と同様と捉えてよい。
 図26は従来におけるアプリケーションの署名検証を示す図である。バイトコードアプリケーションが正当かどうかの検証は、バイトコードアプリケーションを構成するアーカイブファイル内に記録されたデジタル署名とディスク上のルート証明書(discroot.crt)を元に署名検証を行うことで成される。具体的にはアーカイブファイル内のデジタル署名をルート証明書を元に復号して得られるハッシュ値と、アーカイブファイルを構成する個々のクラスファイルのハッシュ値が一致しているかどうかを確認し、一致していればアーカイブファイルは正当であり、一致していなければ何らかの不正があったとみなされる。しかしながら、この検証方法では、ルート証明書とアーカイブファイル内のデジタル署名の両方が対になっていれば、検証にパスするので、正当なルート証明書を保有するコンテンツ提供者が不正にアーカイブファイルを作成した場合は、それを検知する術はなく、第1実施形態で述べたように、再生装置の固有機能を開放してしまうと、正当なルート証明書を保有する全てのコンテンツ提供者は自由に再生装置の固有機能を利用できてしまうことになる。
 図27は、再生装置が保有するデジタル証明書をベースとした署名検証を示す図である。バイトコードアプリケーションを構成するJarファイル内にディスク上のルート証明書をベースとしたデジタル署名に加え、再生装置固有のデジタル証明書をベースとしたデジタル署名も付与する。具体的にはJarファイル内に格納された個々のクラスファイルのハッシュ値がリスト化されたマニフェストファイル(MANIFIEST.MF)のハッシュ値を、再生装置固有のデジタル証明書に対応した秘密鍵で暗号化した値を再生装置固有のデジタル署名としてJarファイル内に記録する。再生装置側では、従来のルート証明書をベースとした署名検証に加え、再生装置固有の証明書をベースとした署名検証も実施する。
 図28は、署名検証の結果に応じた機能制限を示す図である。再生装置固有の機能をバイトコードアプリケーションから呼び出すためには、従来のルート証明書をベースとしたデジタル署名だけでは不十分であり、加えて再生装置固有のデジタル署名を用意しなければならない。再生装置固有のデジタル署名は、再生装置固有の証明書に対応した秘密鍵がなければ作成できないため、第三者が不正に再生装置固有のデジタル署名を用意して、再生装置固有の機能を悪用するということを防ぐことができる。しかも、たとえ再生装置固有のデジタル署名検証に失敗したとしても、従来の共通機能の呼び出しに関しては何ら影響を与えることはないので、共通機能部分に関しては互換性を保つことができる。
 図29は、装置固有機能を利用するため接続要求時における処理のフローチャートである。本フローチャートは第1実施形態におけるステップS103に対応しており、セキュリティ面で強化されている点が異なる。まず、デジタルコピーモジュール35は接続要求を行っているバイトコードアプリケーションに装置固有のデジタル署名が付与されているかどうかを判断する(ステップS201)。装置固有のデジタル署名が付与されていなければ、接続要求を拒否し、以降の通信ポートを介した要求には再生装置は何も応じない、もしくはポートを閉じて一切の通信を拒否してもよい。ステップS201で装置固有のデジタル署名が付与されていると判断できた場合、再生装置は各クラスファイルのハッシュ値の取得を行う(ステップS202)。各クラスファイルのハッシュ値はJarファイルのマニフェストファイルに記載されているため、それらのハッシュ値がリスト化されているマニフェストファイルのハッシュ値を計算するだけでも良い。次に再生装置が持つ固有のデジタル証明書を用いて、バイトコードアプリケーションに付与された装置固有のデジタル署名を復号し、デジタル署名に記されたハッシュ値を導き出す(ステップS203)。そして、ステップS202とステップS203で取得されたハッシュ値が一致していれば、デジタル署名は正しく付与されていると判断し、一致していなければ、不正なデジタル署名であると判断する(ステップS204)。不正なデジタル署名と判断した場合、ステップS201でデジタル署名が付与されていなかった場合と同様、以降は通信ポートを介した再生装置固有の機能呼び出しには全く応じないことになる。デジタル署名が正しいと判断すると、暗号化通信路の生成を行う(ステップS205)。具体的には、再生装置が持つデジタル証明書をバイトコードアプリケーション側に送り、バイトコードアプリケーションは送られてきたデジタル証明書で暗号化通信ソケット(SSLソケット)を作成する。通常のソケット(例えばソケットコマンドおよびその応答)は暗号化されず非暗号でデータがやりとりされるが、SSLソケットは送られてきたデジタル証明書で暗号化してデータをやりとりすることになる。すなわち、通信ポートを介した再生装置とバイトコードアプリケーション間の相互にやりとりするデータは通信路上は全て暗号化されることになる。
 以上、再生装置側はバイトコードアプリケーションに付与されたデジタル署名を、バイトコードアプリケーション側は再生装置から送られてくるサーバ証明書を検証し、かつ、通信ポートを介したデータのやりとりはSSLによる暗号化が施されるため、不正なバイトコードアプリケーション、不正な再生装置を排除し、かつ通信路上のデータを不正取得・利用とするハッカーからの攻撃を防ぐことができる。
 (第7実施形態)
 これまでの実施形態では、再生装置固有の機能としてデジタルコピーを例に、規定のAPIにとらわれない様々な機能をセキュリティを確保しつつ呼び出すことを可能にする構成について述べたが、本実施形態は、このデジタルコピーについて、より使い勝手を向上させた実施の形態の変形例である。第7実施形態では、これまでの実施形態と同様の部分は省略し、変更点のみを記載している点に注意されたい。記載していない部分はこれまでの実施形態と同様と捉えてよい。
 図30は再生装置にて途中までコンテンツを視聴し、途中から携帯端末で視聴する一例を示す図である。自宅等で据え置きの再生装置とテレビで視聴して楽しんでいたコンテンツを、外出時にも楽しみたいというケースを想定した場合、携帯端末で再生したときに、また最初から再生が開始するのではなく、続きから再生が開始されるのが望ましい。この場合、デジタルコピー実施時にコンテンツをコピーするだけでなく、再生位置情報も加えてコピーする必要がある。SDメモリーカード上に記録されるSDビデオフォーマットでは、SDビデオ管理ファイル“MGR_DATA”にレジューム位置を示す再生位置情報を記録することができるため、据え置きの再生装置で途中まで再生していた再生時刻をデジタルコピー時にSDビデオ管理ファイルに記録することで、本ユースケースを実現することができる。
 図31は、第7実施形態におけるデータコピーのフローチャートである。携帯端末向け保護コンテンツを指定されたコピー先メディアにコピーを行う際、再生位置情報の記録についての指定があるかどうかを判断する(ステップS301)。再生位置情報の記録指定はバイトコードアプリケーションからデジタルコピーソケットコマンド用通信ポートを介してデジタルコピーモジュール35に通知することで成される。
 図30では、バイトコードアプリケーションによる再生位置情報のコピーをユーザに問い合わせたが、常に再生位置情報の記録を指定してもよい。いずれにしても、デジタルコピーモジュール35はデータコピー時に事前にバイトコードアプリケーションから再生位置情報の記録指定があるかどうかを判断し、再生位置情報の記録指定がなければ、SDビデオ管理ファイルに手を加えずに、そのままデータコピーを行う。ステップS301において再生位置情報の記録指定が行われていると判断した場合、バイトコードアプリケーションから記録する再生時刻の指定があるかどうかを判断する(ステップS302)。例えば、再生装置にてすでに30分視聴していた場合は、引き渡されるべき値は1,800,000(msec)になる。再生時刻の指定があり、かつその値が有効であれば、SDビデオ管理ファイルに、指定された時刻を書き込む(ステップS303)。ステップS301において再生位置情報の記録指定を受け取っていると判断したが、ステップS302において時刻の指定がされていないと判断した場合、プレーヤレジスタに再生時刻が記録されているかどうかを判断する(ステップS304)。再生装置は複数のレジスタを持っており、その内の一つがレジューム再生用に割り当てられているため、レジューム再生に割り当てられているレジスタの値を確認する。レジューム再生用のレジスタに有効な再生時刻が記録されていれば、その値をSDビデオ管理ファイルに書き込む(ステップS305)。もし、再生位置情報の記録指定を受け取っているにもかかわらず、バイトコードアプリケーションから有効な時刻指定がなく、かつレジスタにも有効な再生時刻が記録されていなかった場合は、SDビデオ管理ファイルには何も手を加えずに、そのままデータコピーを行うことになる(ステップS306)。以上の構成により、単なるデータコピーだけでなく、再生位置情報も加えてコピーすることが可能となり、デジタルコピー後に携帯端末で再生させたときに据え置きの再生装置で途中まで再生していた地点から続き視聴ができるため、デジタルコピーの使い勝手をより向上させることができる。
 (第8実施形態)
 これまでの実施形態では、コピー元とコピー先の記録媒体が異なるケースについてデジタルコピーを実施するための構成について述べたが、本実施形態では、コピー元とコピー先の記録媒体が同一の場合における実施の形態について説明する。
 本実施形態ではこれまでの実施形態と同様の部分は省略し、これまでの実施形態との変更点のみを記載している点に注意されたい。記載していない部分はこれまでの実施形態と同様と捉えてよい。
 図32はコピー元とコピー先が同一記録媒体におけるデジタルコピーを示す図である。コピー元とコピー先が同一になるケースの一つとして、対象となる携帯端末向け保護コンテンツがBD-ROM上に存在せず、バイトコードアプリケーションが外部ネットワークを経由してサーバから携帯端末向け保護コンテンツをダウンロードすることが考えられる。しかしながら、図6で示したように、追加コンテンツ領域とビデオコンテンツ領域は分けられているため、バイトコードアプリケーションは直接ビデオコンテンツ領域にダウンロードすることはできない。バイトコードアプリケーションが自由にアクセスできる領域はアプリケーションが属するOrganizationと同一のOrganizationディレクトリ以下のみとなる。このようにアクセス範囲が決められているのは別のOrganizationのコンテンツを勝手に抜き取ったり削除したりすることを防ぐためである。したがって、バイトコードアプリケーションは追加で携帯端末向け保護コンテンツをダウンロードする場合、まずはOrganizationディレクトリ以下に一旦格納する。そして、Organizationディレクトリに格納されたデジタルコピーコンテンツを、端末内ローカル通信を介して端末固有機能を呼び出し、ビデオコンテンツ領域に移動させるという手順となる。
 図33はコピー元とコピー先が同一記録媒体におけるデジタルコピーに対応したフローチャートである。
 コピー元とコピー先が同一記録媒体となるデジタルコピーにおいては、ステップS101で行っていた、挿入されているディスク上に携帯端末向け保護コンテンツが存在するかどうかを確認するステップは不要となる。
 なぜならば、ディスク上に携帯端末向け保護コンテンツが存在しなくても対象となる携帯端末向け保護コンテンツがローカルストレージ上に記録されている可能性があるためである。本実施の形態においてポート開放時間を極小化する場合は、携帯端末向け保護コンテンツが存在するかどうかではなく、第1実施形態でも述べたようにバイトコードアプリケーション動作中のみ(すなわち、BD-Jタイトル再生中のみ)ポートを開放する、もしくはバイトコードアプリケーションからポート開放の命令を受け取ってから開放する等の処理を行うことになる。ステップS104においてバイトコードアプリケーションとの接続に成功した場合、デジタルコピーモジュール35は次にバイトコードアプリケーションからコピー対象となる携帯端末向け保護コンテンツの格納位置が指定されるのを待つ(ステップS401)。
 コピー対象となる携帯端末向け保護コンテンツの格納位置は、メディアの種類を含んだ絶対パスとなる。例えばBD-ROM上であれば、指定される絶対パスは"/mnt/bdrom/EMOVE/DATA01"等になり、ローカルストレージ(セキュアなメモリカード104等)上であれば“/mnt/sdcard/BUDA/081A24ED/12345ABC/EMOVE/DATA01”等になる。この場合、"/mnt/bdrom"はBD-ROMメディアのマウントポイントに当たり、"/mnt/sdcard"はセキュアなメモリカード104のマウントポイントに当たる。すなわち、バイトコードアプリケーションより指定されるファイルパス情報の中にメディアのマウントポイントを含めることで、デジタルコピーモジュール35はコピー対象の携帯端末向け保護コンテンツがどのメディア上にあるのか判断することができる。ステップS401で取得したコピー対象の位置情報、及びその位置情報から判断できるメディアの種類は、ステップS107において選択されたメディアの種類との比較に用いる(ステップS402)。
 ステップS401で指定されたメディア(すなわちコピー元のメディア)とステップS107で指定されたメディア(すなわちコピー先のメディア)が同一でなければ、ステップS108で残コピー回数及び空き容量の確認を行い、同一の場合は空き容量の確認をスキップして残コピー回数の確認のみ行う(ステップS403)。デジタルコピーモジュール35はステップS403で残コピー回数が残っていると判断した場合、ステップS401で指定されたコピー対象を、同一メディア内のビデオ領域にムーブする(ステップS404)。同一メディア内のムーブの場合、実際のデータコピーは不要であり、ファイルの管理情報書き換えだけで済むため、短時間で処理が終わる。そのため、バイトコードアプリケーションによるユーザへの進捗表示はスキップしてもよい。
 以上の構成によれば、BD-ROM上に予め携帯端末向け保護コンテンツが記録されていなくとも、追加で携帯端末向け保護コンテンツをダウンロードし、かつデジタルコピー処理プロセスの中でコンテンツのムーブを行うことで、デジタルコピーを実施することが可能となる。また、ダウンロードした先とデジタルコピーのコピー先が同一メディアの場合は、不必要に容量を消費せず、かつコピー自体を高速に行うことができる。
 (第9実施形態)
 本実施形態では、これまでの実施形態に示した記録媒体の作り方、つまり、記録方法の形態について説明する。
 本実施形態に係る記録方法は、ストリームファイルであるAVファイル、ストリームファイル以外のファイルである非AVファイルをリアルタイムに作成して、記録媒体におけるAVデータ記録領域、非AVデータ記録領域にダイレクトに書き込むというリアルタイムレコーディングとして実現することができる。それだけではなく、ボリューム領域に記録すべきビットストリームの全体像を事前に作成して、このビットストリームを元に原盤ディスクを作成し、この原盤ディスクをプレスすることで、光ディスクを量産するというプレフォーマットレコーディングも含む。本実施形態に係る記録媒体は、リアルタイムレコーディングによる記録方法、及び、プレフォーマットレコーディングによる記録方法によっても特定されるものでもある。ここで、プレフォーマットレコーディングによる記録方法は、BD-ROMオーサリング(1)、著作権保護(2)、プレス(3)、プレスで得られたBD-ROMのパッケージング(4)という過程で構成される。
 この過程において、BD-ROMオーサリング(1)の完了後、著作権保護(2)の実行前に、デジタルコピー対応メニューの制作(1-1)という行程が存在する点が、従来の記録方法と異なる。
 デジタルコピー対応メニューの制作行程が存在するのは、BD-ROMの全体メニュー、又は、タイトルメニューから、デジタルコピーのための対話制御メニューを表示させるためである。更にBD-ROMオーサリング(1)から著作権保護(2)までの過程に並行して、携帯端末向け保護コンテンツを構成するデジタルストリームを生成するためのエンコードと、当該エンコードで得られたデジタルストリームを暗号化するための著作権保行程とが存在する。
 そして、パッケージングの際封入されるシリアルID、又は、ディスクのプレス行程で、ディスクに書き込まれるシリアルIDの何れかをサーバに登録する行程が存在する。
 <備考>
 以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
 <機器固有機能のバリエーション>
 本実施の形態では、再生装置固有の機能としてデジタルコピーを例に述べたが、録画機能や配信サービスと記録媒体上のアプリケーションとの連携も考えられる。すなわち、本発明は再生装置固有の機能としてデジタルコピーに限定されるものではない。例えば、記録媒体上のアプリケーションから録画予約を行う、もしくは配信サービスと連携してダウンロードを行うといったサービスにも応用可能である。
 <再生装置のバリエーション>
 上記実施形態では、記録媒体を再生する再生機能のみを持つ再生装置について説明したが、それに限らない。例えば、録画機能を持つ録画再生装置であっても良い。
 <プログラミング言語のバリエーション>
 上記実施形態では、アプリケーションのプログラミング言語としてJava(TM)(登録商標)を利用したが、Java(TM)(登録商標)ではなく、UNIX(登録商標) OSなどで使われているB-Shellや、Perl Script、ECMA Scriptなど他のプログラミング言語であっても良い。
 <記録媒体のバリエーション>
 また、上述の実施の形態ではBD-ROMを再生する再生装置について説明をしたが、書き込み可能な光記録媒体に上述の実施の形態にて説明をしたBD-ROM上の必要なデータが記録されていた場合においても上述と同様の効果を奏することはもちろんのことである。
 また、上述の形態ではコピー元の記録媒体として、BD-ROMまたは書き込み可能な光記録媒体を例に説明をしているが、これに限定をされる必要は無く、例えばSDメモリーカード、メモリースティック、コンパクトフラッシュ、スマートメディア、マルチメディアカード等の可搬性の記録媒体に相当するリムーバブルメディアを用いても構わない。
 コピー元の記録媒体としてリムーバブルメディアを用いる場合、このコピー元に用いるリムーバブルメディアには、例えば図11に示すボリューム領域に記録されているディレクトリ構造を有するデータに相当するものを記録する領域(ユーザ領域)、図25で説明をした保護領域およびシステム領域を有する構造である。
 この場合ではコピー元のリムーバブルメディアに記録された携帯端末向けコンテンツがコピー先のリムーバブルメディアへコピーされることになる。当然のことながら、コピー元のリムーバブルメディアとコピー先のリムーバブルメディアとは別である。
 コピー元の記録媒体にBD-ROMを用いた場合では、上述の実施の形態の説明において、例えば鍵情報生成部602では、コピー元からはBD-ROM上の特殊領域であるBCA(Burst Cutting Area)に記録されている記録媒体の物理的なシリアルIDを示すPMSN(Pre-recorded Media Serial Number)を、読み出す構成である。これに対し、コピー元の記録媒体にリムーバブルメディアを用いる場合には、PMSNを読み出す代りに、コピー元のリムーバブルメディア固有の情報(メディアID)を読み出す構成とすればよい。
 このように上述の実施の形態の説明および図面において、コピー元の記録媒体であるBD-ROMをリムーバブルメディアと読み替えるとともに、コピー元の記録媒体であるBD-ROMのシリアルIDをリムーバブルメディアの固有の情報(メディアID)と読み替えれば、コピー元の記録媒体にリムーバブルメディアを用いたときの動作の説明となる。
 また、コピー元の記録媒体としてリムーバブルメディア用いた場合、BD-ROMのボリューム領域に記録されているディレクトリ構造を有するデータに相当するものを記録する領域(ユーザ領域)に記録されるデータのうちの一部のデータ(例えばストリームデータ)は、暗号化なされている。
 コピー元の記録媒体としてリムーバブルメディア用いた場合、(ユーザ領域)に記録されるデータというのはリムーバブルメディアを頒布時に予め記録されていても良い。この場合、リムーバブルメディアの頒布時において、ユーザ領域に記録されるデータの一部のデータが暗号化されている場合には、暗号化されたデータを復号するためのキー情報(タイトルキー)を含む復号鍵がコピー元の記録媒体の保護領域に予め記録されている。このとき、復号鍵は、コピー元の記録媒体のシステム領域のMKBを用いて復号ができるように暗号化がなされているものとする。
 または、コピー元の記録媒体としてリムーバブルメディア用いた場合、このリムーバブルメディアの頒布時にはユーザ領域にデータが記録されていないものの、頒布後、ダウンロード等の要求により、ユーザ領域に、BD-ROMのボリューム領域に記録されているディレクトリ構造を有するデータに相当ものを記録するようにしても良い。ダウンロード要求を行う装置というのは本実施の形態で説明をした再生装置を用いて行っても良いし、本実施の形態とは別のダウンロードを行うための端末装置を用いて行っても良い。この場合にはまず、ダウンロード要求を行う装置に頒布されたリムーバブルメディアを装填し電気的に接続をされた状態で、データのダウンロードの要求とともに、リムーバブルメディアのメディアIDおよびMKBを読み出して配信サーバへ送る。配信サーバにおいて、リムーバブルメディアのメディアIDおよびMKBを用いて生成される復号鍵と対応するデータをダウンロードの要求を行った装置へ送る。ダウンロードの要求を行った装置では、受信した対応するデータをリムーバブルメディアのユーザ領域へ記録し、受信した公開鍵ファイルをリムーバブルメディアの保護領域に記録する。ユーザ領域に記録されるデータの一部のデータが暗号化されている場合には、暗号化されたデータを復号するためのキー情報(タイトルキー)を含む復号鍵がコピー元の記録媒体の保護領域に記録されることになる。このとき、復号鍵は、コピー元の記録媒体のシステム領域のMKBを用いて復号ができるに暗号化がなされているものとする。
 以上のように構成をすれば、リムーバブルメディアをコピー元の記録媒体とすることができる。
 このようにすれば、ユーザ領域に記録される携帯端末向けコンテンツのみを本実施の形態とは異なる手法で別のリムーバブルメディアへ記録したとしても、別のリムーバブルメディアには復号鍵に関する情報が無いため、不正なコピーによる再生を抑止することができる。
 万が一にも、別のリムーバブルメディアに復号鍵をも記録できたとしても、別のリムーバブルメディアのMKBはコピー元のリムーバブルメディアのMKBと異なるため、暗号化された復号鍵の復号が行えないため、コピー元のリムーバブルメディアのユーザ領域に記録されたデータの不正な利用を抑止することができる。
 <コピー中の警告>
 コピー中はI/O処理がデジタルコピー実行部604に占有されるため、BD-ROM上のコンテンツを正常に再生することができなく恐れがある。そのため、しばらくの間は、再生ができないということ、ディスクを取り出してはいけないということ、及び電源を落としてはいけないということを事前にユーザに通知しておくことが望ましい。とは言え、ユーザが誤ってディスクを取り出したり、電源を落としたりすることは大いに有り得る。しかしながら、復号鍵書込の処理は、この時点では完了しておらず、残コピー回数は減っていないため、ここでデータコピーに失敗しても残コピー回数が減るということはない。デジタルコピーサーバ36側で管理している残コピー回数は、次のステップで復号鍵をデジタルコピーサーバ36からダウンロードした時点で減ることになる。
 <携帯端末向け保護コンテンツが存在するかどうかの判断>
 "EMOVE"ディレクトリの有無で判断するのではなく、他に携帯端末向け保護コンテンツの存在を示すファイルを予め決めておき、そのファイルの有無でディスク上に携帯端末向け保護コンテンツが存在するかどうかを判断してもよい。
 <メディアの一覧表示>
 メディアの一覧表示時において、空き容量が不足している、もしくはメディアが未挿入であると予め判断できたメディアには、空き容量が不足している、もしくはメディアが未挿入であるというマーク(もしくはフラグ)をつけてもよい。
 <デジタルコピーサーバ36への接続URL>
 デジタルコピーサーバ36への接続URLは再生装置が保有する固定のものを利用してもよいし、バイトコードアプリケーションから指定されたURLを用いても良い。デジタルコピーサーバ36はコンテンツ提供者毎、地域毎に異なるサーバになる可能性がある。よって、バイトコードアプリケーションから通信ポートを介して指定されたURLを使ってデジタルコピーサーバ36へ接続するのが望ましい。
 <サーバ証明書>
 サーバ証明書、つまり、SSLソケット作成用に再生装置がバイトコードアプリケーションに送るデジタル証明書は、装置固有機能を利用するために用いられるデジタル証明書とは別にしてもよい。この場合、再生装置は暗号化通信用と固有機能用の2種類のデジタル証明書を用意する。加えて、再生装置の不正を防ぐために、バイトコードアプリケーション側で再生装置から送られてくるサーバ証明書の正当性を検証してもよい。例えば、無秩序にコピー可能な再生装置が出回る恐れもあるため、バイトコードアプリケーション側でも再生装置の正当性を検証するのが望ましい。再生装置から送られてくるサーバ証明書を検証し、もしそのサーバ証明書がブラックリストに載っていれば、その再生装置ではデジタルコピー等の実施をバイトコードアプリケーション側で止めることができる。 
 <処理のバリエーション>
 第8実施形態では、同一メディアにおけるデジタルコピーについては、不必要にメディア容量を消費しない、かつデータコピーを短時間で終えることができるという観点からムーブを前提に記載したが、十分な空き容量が存在する場合、またはコピー対象となるコンテンツのサイズが小さい場合は、元となるファイルを残してコピーを行っても良い。 
 <コピーソースユニットのバリエーション>
 本編コンテンツに、4つのバリエーションが存在していて、本編コンテンツ再生時に、これら、4つのバージョンのうち、任意のものを再生することができる場合、これら4つのバージョンのそれぞれに対応する携帯端末向け保護コンテンツを、DATA01ディレクトリ、DATA02ディレクトリ、DATA03ディレクトリ、DATA04ディレクトリに記録しておいてもよい。こうすることで、視聴することができる様々なバリエーションの本編コンテンツを、任意にコピーすることができる。
 <バイトコード>
 これまでの実施形態で説明に使用した“バイトコード”は、例えば、オペランドスタック、ローカル変数、オブジェクト配列に対する操作をJava仮想マシンに実行させる語長が2バイト以下のコードを想定している。オペランドスタック、ローカル変数、オブジェクト配列に対する操作には、オペランドスタックからの取り出し、オペランドスタックへの蓄積、オブジェクト配列からのオブジェクト参照の取り出し、オブジェクト配列へのオブジェクト参照の格納、メソッド終了及び呼出元へのリターン、値の型変換、比較、オペランドスタックに対する加算/減算/乗算/剰余算、符号反転、語挿入を伴うコピーがある。このような特性をもち、バイトコードと技術的に同視することができるプログラムコードであるなら、アプリケーションの作成にそのようなプログラムコードを用いてもよい。   
 <クラスファイル>
 バイトコードアプリケーションは、クラスファイルのインスタンスである。ここでクラスファイルは、例えば、幾つかのブロックから構成され、そのブロックが細部構造をもっていて、様々なデータの階層管理が可能なデータ構造をもつ構造体ファイルをいう。この細部構造とは、複数のコンスタントプール、複数のフィールドインフォ、複数のメソッドインフォ、複数のアトリビュートインフォが存在するというものである。アトリビュートインフォは、抽象クラスであり、そのサブクラスがクラスファイル、フィールドインフォ、メソッドインフォの下位構造となる。例えば、アトリビュートインフォのうちコード属性は、メソッドインフォの属性となる。このメソッドインフォにより、バイトコードアプリケーションのプログラム的性質が規定される。このような特性をもち、かかるクラスファイルの内部構成と技術的に同視することができるデータ構造であるなら、バイトコードアプリケーションの作成に、そのようなデータ構造を用いてもよい。
 <集積回路の実施形態> 
 本発明にかかる集積回路は、システムLSIであり、再生装置のハードウェア構成のうち、記録媒体のドライブ部や、外部とのコネクタ等、機構的な部分を排除して、論理回路や記憶素子に該当する部分、つまり、論理回路の中核部分を内蔵したものである。システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものはマルチチップモジュールと呼ばれるが、このようなものに、システムLSIに含まれる。 
 ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。 
 これらのピンは、電源供給やグランド、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置の中核としての役割を果たす。 
 図34は、集積回路のアーキテクチャを示す図である。本図に示すように、システムLSIである集積回路70のアーキテクチャは、フロントエンド部71と、信号処理部72と、バックエンド部73と、メディアI/O74と、メモリコントローラ75と、ホストマイコン76とから構成され、メディアI/O74、メモリコントローラ75を通じて、再生装置におけるドライブやメモリ、送受信部と接続されている。再生装置におけるドライブには、BD-ROMのドライブ、ローカルストレージのドライブ、リムーバブルメディアのドライブ等がある。
 フロントエンド処理部71は、プリプログラムされたDMAマスタ回路やI/Oプロセッサ等から構成され、パケット処理全般を実行する。このパケット処理には、デマルチプレクサによるソースパケットデパケッタイザの処理、PIDフィルタの処理が該当する。再生装置のメモリに確保された、トラックバッファ、各種プレーンメモリ、各種バッファ間でDMA転送を実現することにより、上述したようなパケット処理を実現する。 
 信号処理部72は、信号処理プロセッサやSIMDプロセッサ等から構成され、信号処理全般を実行する。信号処理には、ビデオデコーダによるデコードやオーディオデコーダによるデコードがある。 
 バックエンド部73は、加算器、フィルタから構成され、AV出力処理全般を行う。AV出力処理には画素処理があり、かかる画素処理によってレイヤ合成のための画像重畳、リサイズ、画像フォーマット変換がなされる。また、デジタル/アナログ変換等を併せて実行する。 
 メディアI/O74は、ドライブ、ネットワークとのインターフェイスである。  
 メモリコントローラ75は、メモリアクセスのためのスレーブ回路であり、フロントエンド部、信号処理部、バックエンド部の要求に応じて、パケットやピクチャデータのメモリの読み書きを実現する。 このメモリコントローラ75を通じたメモリの読み書きによって、メモリは、トラックバッファやビデオプレーン、グラフィクスプレーン、ビデオデコーダにおける各種バッファとして機能することになる。
 ホストマイコン76は、MPU,ROM,RAMから構成され、メディアインターフェイス、フロントエンド部、信号処理部、バックエンド部に対して、全体制御を実行する。この全体制御には、再生制御部、バイトコード処理モジュール、コマンド処理モジュール、モード管理モジュールとしての制御がある。このホストマイコンにおけるCPUは、命令フェッチ部、デコーダ、実行ユニット、レジスタファイル、プログラムカウンタを有している。そして、これまでの実施形態で述べた各種処理を実行するプログラムは、組込プログラムとして、基本入出力システム(BIOS)、様々なミドルウェア(オペレーションシステム)と共に、このホストマイコンにおけるマイコン内のROMに記憶されている。よって再生装置の主たる機能は、このシステムLSI内に組込んでおくことができる。 
 <プログラムの実施形態>
 各実施形態に示したプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。 
 記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。 
 コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。 
 ここで生成されたオブジェクトプログラムは、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVAバイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。 
 オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを1つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。かかるプログラムを非一時的なコンピュータプログラムとしてコンピュータ読取可能な記録媒体に記録してユーザに提供してよい。
 本発明を構成する再生装置は、当該記録媒体上のアプリケーションプログラムと再生装置の独自機能を連携させたサービスを提供することが可能となる。特に、映像コンテンツの制作に携わる映画産業・民生機器産業において利用できる。
 101 再生装置
 102 リモコン
 103 表示装置
 105 リードオンリーメディア105
 106 携帯装置
  28 オンメディアライブラリ
  29 外部サーバ
  31 読出制御部
  32 書込制御部
  33 機器固有機能制御部
  35 デジタルコピーモジュール
  36 デジタルコピーサーバ

Claims (16)

  1.  記録媒体に記録されたコンテンツを再生すると共に、当該コンテンツに対する機能を実行する再生装置であって、
     前記コンテンツに対する機能には、標準化された再生制御機能と、機器固有の機器固有機能とがあり、
     記録媒体からバイトコードアプリケーションを読み出して、動作させるプラットフォーム部と、
     再生制御機能を実行する再生制御部と、
     機器固有機能を実行する固有機能制御部とを備え、
     前記再生装置のプラットフォーム部は、バイトコードアプリケーションが利用可能なプログラミングインターフェイスを有し、前記バイトコードアプリケーションが利用可能なプログラミングインターフェイスは、再生制御用プログラミングインターフェイスと、通信用プログラミングインターフェイスとを含み、
     前記バイトコードアプリケーションは、再生制御用プログラミングインターフェイスをコールすることで、再生制御部に再生制御を命じ、
     通信用プログラミングインターフェイスを用いて固有機能制御部を相手側としたソケット接続を行い、当該ソケット接続を通じて、固有機能制御部に機器固有の制御を命じる
     ことを特徴とする再生装置。
  2.  前記記録媒体は第1記録媒体であり、第1記録媒体には、ルートディレクトリの配下に第1ディレクトリと、第2ディレクトリとが存在し、
     第1ディレクトリは、本編コンテンツが記録されているディレクトリであり、前記バイトコードアプリケーションは、第1ディレクトリに記録されており、
     第2ディレクトリは、持出し視聴用コンテンツが記録されており、当該持出し視聴用コンテンツは、本編コンテンツとは異なるフォーマットのコンテンツであって、機器固有機能の対象となるものであり、
     前記機器固有機能とは、持出し視聴用コンテンツを構成するファイルを、第1記録媒体から第2記録媒体へと、コピーするというメディア間コピーである
     ことを特徴とする請求項1記載の再生装置。
  3. 前記第2ディレクトリの配下には、複数のコピーソース格納ディレクトリが存在し、
     前記持出し視聴用コンテンツは、何れか1つのコピーソース格納ディレクトリに記録されており、
     前記バイトコードアプリケーションは、何れかのコピーソース格納ディレクトリのファイルパスを、カレントのソースロケーションとして固有機能制御部に設定することを命じ、
     前記固有機能制御部は、何れか1つのコピーソース格納ディレクトリがカレントソースロケーションとして設定されれば、コピーソース格納ディレクトリから持出し視聴用コンテンツを読み出して、第2記録媒体に書き込むことで、機器固有機能を実行する
     ことを特徴とする請求項2記載の再生装置。
  4. 前記第1記録媒体の第1ディレクトリには、機器固有機能のためのオンメディアライブラリが記録されており、オンメディアライブラリは、第1ディレクトリに記録された他のバイトコードアプリケーションに、機器固有機能実行のためのプログラミングインターフェイスを提供するものであり、
     前記オンメディアライブラリは、
     他のバイトコードアプリケーションから、機器固有機能実行用プログラミングインターフェイスのコールがなされた場合、当該プログラミングインターフェイスのコールをソケットコマンドに変換した上で固有機能制御部に出力し、固有機能制御部からのレスポンスを戻り値又はイベントに変換して、コールを行った他のバイトコードアプリケーションに返し、
     前記ソケット接続は、前記ソケットコマンド及びレスポンスを伝送するための通信路を構成する
     ことを特徴とする請求項2記載の再生装置。
  5.  前記第1記録媒体には、持出し視聴用コンテンツを識別するためのコンテンツIDが記録されており、
     コンテンツIDの一部をなすビットは、持出し視聴用コンテンツの供給源であるコンテンツプロバイダを識別するためのものであり、
     バイトコードアプリケーションは、固有機能制御部に、コンテンツIDと、シリアル番号とを含むコマンドを送信し、
     固有機能制御部は、コンテンツIDと、シリアル番号との組みをサーバに送信して、持出し視聴用コンテンツの供給源であるコンテンツプロバイダが、固有機能制御を利用する正当権限を有しているかどうかをサーバに判断させ、正当権限を有しているとサーバが判断した場合は、機器固有機能を実行するが、正当権限を有していないと判断した場合、機器固有機能を実行しない
     ことを特徴とする請求項2記載の再生装置。
  6.  前記持出し視聴用コンテンツに含まれるデジタルストリームは、暗号化されて前記第1記録媒体上に記録されており、
     前記固有機能制御部は更に、前記第2記録媒体に記録すべき持出し視聴用コンテンツに含まれるデジタルストリームを第2記録媒体に書き込む際、前記第一記録媒体に属するシリアルIDと、前記デジタルストリームのコンテンツ識別子と、前記第2記録媒体の媒体識別子及び暗号キーと、を前記外部サーバに送信し、
     前記第2記録媒体固有の保護方式とは、
     前記シリアルID、コンテンツ識別子、媒体識別子及び暗号キーに対応した復号鍵をサーバから取得して、前記第2記録媒体の保護された領域に記録することである、請求項4に記載の再生装置。
  7.  前記再生装置はさらに、前記オンメディアライブラリのアーカイブファイル内のデジタル署名ファイルの正当性を検証する検証部を備え、
     前記検証部は、再生装置内に組み込まれた認証鍵を元に、前記オンメディアライブラリのアーカイブファイル内のデジタル署名ファイルのハッシュ値を算出し、
     前記算出されたハッシュ値が、前記オンメディアライブラリのアーカイブファイル内のデジタル署名ファイルに含まれるデジタル署名の値と一致していれば、バイトコードアプリケーションは、正当であると判断し、
     前記検証部がデジタル署名ファイルが正当でないと判断した場合、前記固有機能制御部はバイトコードアプリケーションから前記再生制御とは異なる機器固有の機能に関連したコマンドを受け取っても、前記再生制御とは異なる機器固有機能の実行を拒否する、請求項4に記載の再生装置。
  8.  再生装置は、通信管理部を備え、
     前記ソケット通信のためのプログラミングインターフェイスは、通信管理部によって供給され、バイトコードアプリケーションからのネットワーク接続要求を検知すると、通信管理部は、再生装置が保有するデジタル証明書をバイトコードアプリケーションに送信し、
     デジタル証明書に付与された署名が正当であると判断した場合に、バイトコードアプリケーションは、通信管理部から通信鍵を受け取り、機器固有機能に関するコマンドを前記通信鍵を用いて暗号化して通信管理部へ送る、請求項2に記載の再生装置。
  9.  記録媒体であって、
     コンテンツと、バイトコードアプリケーションとが記録されており、
     前記コンテンツに対する機能には、標準化された再生制御機能と、機器固有の機器固有機能とがあり、
     再生装置のプラットフォーム部は、バイトコードアプリケーションが利用可能なプログラミングインターフェイスを有し、前記バイトコードアプリケーションが利用可能なプログラミングインターフェイスは、再生制御用プログラミングインターフェイスと、通信用プログラミングインターフェイスとを含み、
     前記バイトコードアプリケーションは、再生制御用プログラミングインターフェイスをコールすることで、再生装置内の再生制御部に再生制御を命じ、
     通信用プログラミングインターフェイスを用いて固有機能制御部を相手側としたソケット接続を行い、当該ソケット接続を通じて、再生装置内の固有機能制御部に機器固有の制御を命じる
     ことを特徴とする記録媒体。
  10.  前記記録媒体は第1記録媒体であり、第1記録媒体には、ルートディレクトリの配下に第1ディレクトリと、第2ディレクトリとが存在し、
     第1ディレクトリは、本編コンテンツが記録されているディレクトリであり、前記バイトコードアプリケーションは、第1ディレクトリに記録されており、
     第2ディレクトリは、持出し視聴用コンテンツが記録されており、持出し視聴用コンテンツは、本編コンテンツとは異なるフォーマットのコンテンツであって、機器固有機能の対象となるものであり、
     機器固有機能とは、持出し視聴用コンテンツを構成するディレクトリ及びファイルを、第1記録媒体から第2記録媒体へと、コピーするというメディア間コピーである
     ことを特徴とする請求項9記載の記録媒体。
  11. 第2ディレクトリの配下には、複数のコピーソース格納ディレクトリが存在し、
     前記持出し視聴用コンテンツは、何れか1つのコピーソース格納ディレクトリに記録されており、
      バイトコードアプリケーションは、何れかのコピーソース格納ディレクトリのファイルパスを、カレントのソースロケーションとして固有機能制御部に設定することを命じ、
     固有機能制御部は、何れか1つのコピーソース格納ディレクトリがカレントソースロケーションとして設定されれば、カレントコピーソース格納ディレクトリから持出し視聴用コンテンツを読み出して、第2記録媒体に書き込むことで、機器固有機能を実行する
     ことを特徴とする請求項10記載の記録媒体。
  12. 前記第1記録媒体の第1ディレクトリには、機器固有機能のためのオンメディアライブラリが記録されており、オンメディアライブラリは、第1ディレクトリに記録された他のバイトコードアプリケーションに、機器固有機能実行のためのプログラミングインターフェイスを提供するものであり、
     前記オンメディアライブラリは、
     バイトコードアプリケーションから、機器固有機能実行用プログラミングインターフェイスのコールがなされた場合、当該プログラミングインターフェイスのコールをソケットコマンドに変換した上で固有機能制御部に出力し、固有機能制御部からのレスポンスを戻り値又はイベントに変換して、コールを行ったバイトコードアプリケーションに返し、
     前記ソケット接続は、前記ソケットコマンド及びレスポンスを伝送するための通信路を構成する
     ことを特徴とする請求項10記載の記録媒体。
  13. 記録媒体に記録されたコンテンツを再生すると共に、当該コンテンツに対する機能を実行する再生方法であって、
     コンテンツに対する機能には、標準化された再生制御機能と、機器固有の機器固有機能とがあり、
     記録媒体からバイトコードアプリケーションを読み出して、コンピュータのプラットフォーム部に動作させる第1ステップと、
     バイトコードアプリケーションからの要求に従い、コンテンツに対する機能をコンピュータ内の固有機能制御部に実行させる第2ステップとを有し、
     前記コンピュータのプラットフォーム部において、バイトコードアプリケーションが利用可能なプログラミングインターフェイスは、再生制御用プログラミングインターフェイスと、通信用プログラミングインターフェイスとを含み、
     前記バイトコードアプリケーションは、再生制御用プログラミングインターフェイスをコールすることで、再生制御部に再生制御を命じ、
     通信用プログラミングインターフェイスを用いて固有機能制御部を相手側としたソケット接続を行い、当該ソケット接続を通じて、固有機能制御部に機器固有の制御を命じる
     ことを特徴とする再生方法。
  14. 記録媒体に記録されたコンテンツを再生すると共に、当該コンテンツに対する機能を実行するコンピュータが読み取り可能なプログラムであって、
     コンテンツに対する機能には、標準化された再生制御機能と、機器固有の機器固有機能とがあり、
     記録媒体からバイトコードアプリケーションを読み出して、コンピュータのプラットフォーム部に動作させる第1ステップと、
     バイトコードアプリケーションからの要求に従い、コンテンツに対する機能をコンピュータ内の固有機能制御部に実行させる第2ステップとを有し、
     前記コンピュータのプラットフォーム部において、バイトコードアプリケーションが利用可能なプログラミングインターフェイスは、再生制御用プログラミングインターフェイスと、通信用プログラミングインターフェイスとを含み、
     前記バイトコードアプリケーションは、再生制御用プログラミングインターフェイスをコールすることで、再生制御部に再生制御を命じ、
     通信用プログラミングインターフェイスを用いて固有機能制御部を相手側としたソケット接続を行い、当該ソケット接続を通じて、固有機能制御部に機器固有の制御を命じるようにコンピュータを動作させる
     ことを特徴とするコンピュータが読み取り可能なプログラム。
  15.  記録媒体に記録されたバイトコードアプリケーションおよびオンメディアライブラリを読み出して、動作させるプラットフォーム部と、
     前記記録媒体に記録されたコンテンツに対し、標準化された再生制御機能を実行する再生制御部と、
     前記記録媒体に記録されたコンテンツに対し、機器固有の機器固有機能を実行する固有機能制御部とを備え、
     プラットフォーム部は、バイトコードアプリケーションが利用可能なプログラミングインターフェイスを有し、前記バイトコードアプリケーションが利用可能なプログラミングインターフェイスは、再生制御用プログラミングインターフェイスと、通信用プログラミングインターフェイスとを含むコンピュータが読取り可能なプログラムであって、
     前記バイトコードアプリケーションが、再生制御用プログラミングインターフェイスをコールすると、再生制御部に再生制御を命じるステップ、
     バイトコードアプリケーションが、オンメディアライブラリをコールすると、オンメディアライブラリが通信用プログラミングインターフェイスを用いて固有機能制御部を相手側としたソケット接続を行い、当該ソケット接続を通じて、固有機能制御部に機器固有の制御を命じるステップをコンピュータに実行させるコンピュータが読取り可能なプログラム。
  16.  バイトコードアプリケーションはオンメディアライブラリを含む請求項15に記載のコンピュータが読取り可能なプログラム。
PCT/JP2011/000496 2010-06-10 2011-01-28 再生装置、記録媒体、再生方法、プログラム WO2011155098A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201180001251.6A CN102369577B (zh) 2010-06-10 2011-01-28 回放设备、记录方法和回放方法
EP11745463.7A EP2581908A4 (en) 2010-06-10 2011-01-28 PLAYING DEVICE, RECORDING MEDIA, PLAY PROCESS, PROGRAM
JP2011524041A JP4814407B1 (ja) 2010-06-10 2011-01-28 再生装置、記録媒体、再生方法、プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US35325210P 2010-06-10 2010-06-10
US61/353,252 2010-06-10
JP2010-132580 2010-06-10
JP2010132580 2010-06-10

Publications (1)

Publication Number Publication Date
WO2011155098A1 true WO2011155098A1 (ja) 2011-12-15

Family

ID=45096286

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/000496 WO2011155098A1 (ja) 2010-06-10 2011-01-28 再生装置、記録媒体、再生方法、プログラム

Country Status (5)

Country Link
US (1) US8588580B2 (ja)
EP (1) EP2581908A4 (ja)
JP (2) JP4814407B1 (ja)
CN (1) CN102369577B (ja)
WO (1) WO2011155098A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190104394A (ko) 2017-01-24 2019-09-09 가부시키가이샤 한도오따이 에네루기 켄큐쇼 표시 장치 및 전자 기기

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101057288B (zh) 2004-11-09 2010-12-22 汤姆森许可贸易公司 把内容绑定到可移动存储器上的方法和装置
JP5396821B2 (ja) * 2008-11-05 2014-01-22 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
WO2010119563A1 (ja) * 2009-04-17 2010-10-21 パイオニア株式会社 情報記録装置及びコピー管理プログラム
KR101758613B1 (ko) 2010-03-09 2017-07-31 삼성전자주식회사 방송 컨텐츠 제공 방법 및 장치와 그 시스템
US20110283368A1 (en) * 2010-05-11 2011-11-17 Massimiliano Gasparri Identification and end-use differentiation in digital media
JP5529964B2 (ja) * 2010-07-01 2014-06-25 パナソニック株式会社 再生装置、再生方法、プログラム
PL2544118T3 (pl) * 2011-07-04 2017-01-31 Siemens Convergence Creators Gmbh Sposób ochrony treści danych
US9037683B1 (en) * 2012-03-05 2015-05-19 Koji Yoden Media asset streaming over network to devices
JP5935883B2 (ja) * 2012-05-21 2016-06-15 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
KR20140039504A (ko) * 2012-09-24 2014-04-02 삼성전자주식회사 블루레이 디스크 재생 장치 및 블루레이 디스크 로딩 방법
US9137270B2 (en) * 2012-12-03 2015-09-15 International Business Machines Corporation Binding multiple addresses to a socket in a network system
US9088612B2 (en) * 2013-02-12 2015-07-21 Verizon Patent And Licensing Inc. Systems and methods for providing link-performance information in socket-based communication devices
US9569229B1 (en) 2013-07-29 2017-02-14 Western Digital Technologies, Inc. Automatic start of an application at start up for a media player appliance
CN103686379B (zh) * 2013-12-18 2017-02-15 青岛海信电器股份有限公司 一种多媒体文件的播放方法、装置、以及电视机
US20160019877A1 (en) * 2014-07-21 2016-01-21 Jesse Martin Remignanti System for networking audio effects processors, enabling bidirectional communication and storage/recall of data
WO2016043040A1 (ja) * 2014-09-19 2016-03-24 株式会社aLab デバイスドライバ登録装置とこれを用いたデバイスドライバの登録方法
US9197696B1 (en) 2015-01-19 2015-11-24 Vuclip Offline content distribution networks
US20160307603A1 (en) * 2015-04-15 2016-10-20 Sony Corporation Information processing device, information recording medium, information processing method, and program
US9420027B1 (en) * 2015-04-27 2016-08-16 Wowza Media Systems, LLC Systems and methods of communicating platform-independent representation of source code
WO2017022386A1 (ja) * 2015-08-04 2017-02-09 ソニー株式会社 情報処理装置、情報記憶装置、および情報処理方法、並びにプログラム
WO2017038493A1 (ja) * 2015-09-01 2017-03-09 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
CN106597904A (zh) * 2016-12-27 2017-04-26 贵州航天南海科技有限责任公司 一种插接板扩展的立体车库路径规划控制方法
CN106502185A (zh) * 2016-12-27 2017-03-15 贵州航天南海科技有限责任公司 一种插接板扩展的立体车库路径规划控制系统
CN106647504A (zh) * 2016-12-27 2017-05-10 贵州航天南海科技有限责任公司 一种易扩展的立体车库控制方法
CN106647403A (zh) * 2016-12-27 2017-05-10 贵州航天南海科技有限责任公司 一种插接板扩展的立体车库控制方法
TWI689819B (zh) * 2018-09-27 2020-04-01 瑞昱半導體股份有限公司 音訊播放裝置及其運作方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09222974A (ja) * 1996-02-16 1997-08-26 Fuji Xerox Co Ltd 言語解釈表示方法とその方法を用いた装置およびシステム
JP2003345751A (ja) * 2002-05-22 2003-12-05 Nippon Telegr & Teleph Corp <Ntt> プラットフォーム制御方法、プラットフォーム制御装置、プラットフォーム制御プログラムおよびそのプログラムを格納した記憶媒体
JP2004295463A (ja) * 2003-03-27 2004-10-21 Nippon Telegr & Teleph Corp <Ntt> アプリケーション管理システム及びその方法
JP2007251803A (ja) * 2006-03-17 2007-09-27 Sharp Corp 記録再生装置、携帯端末装置、記録再生システム、及び記録再生方法
JP2008527600A (ja) * 2005-01-10 2008-07-24 エルジー エレクトロニクス インコーポレーテッド 記録媒体、ならびにローカルストレージを用いて記録媒体からデータを再生する装置および再生装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438615B1 (en) * 1997-01-31 2002-08-20 Sun Microsystems, Inc. System, method and article of manufacture for using multiple bidirectional ports in association with a java application or applet
US20020099795A1 (en) * 2001-01-19 2002-07-25 Robert Betros System and method for maintaining two-way asynchronous notification between a client and a web server
US20040030763A1 (en) * 2002-08-08 2004-02-12 Manter Venitha L. Method for implementing vendor-specific mangement in an inifiniband device
US20050270973A1 (en) * 2004-06-07 2005-12-08 Raev Kaloyan V Cluster architecture communications
US20070192818A1 (en) * 2004-10-12 2007-08-16 Mikael Bourges-Sevenier System and method for creating, distributing, and executing rich multimedia applications
WO2006082892A1 (ja) * 2005-02-04 2006-08-10 Matsushita Electric Industrial Co., Ltd. 読出装置、プログラム、読出方法
US20070041711A1 (en) * 2005-08-22 2007-02-22 Lg Electronics Apparatus for reproducing data, method thereof, apparatus for recording the same, method thereof and recording medium
CN101502104A (zh) * 2006-06-30 2009-08-05 索尼株式会社 信息处理设备,信息处理方法,记录介质和程序
JP5087903B2 (ja) * 2006-06-30 2012-12-05 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
US8695103B2 (en) * 2007-03-07 2014-04-08 Rovi Solutions Corporation Apparatus for and a method of copy-protecting a content carrying recording medium
JP5406178B2 (ja) * 2008-04-16 2014-02-05 パナソニック株式会社 再生装置、再生方法、プログラム
JP2010009407A (ja) 2008-06-27 2010-01-14 Sony Corp 情報処理装置、およびデータ処理方法、並びにプログラム
JP2010049448A (ja) * 2008-08-21 2010-03-04 Sony Corp 情報処理装置、およびデータ処理方法、並びにプログラム
US20110103769A1 (en) * 2009-10-30 2011-05-05 Hank Risan Secure time and space shifted audiovisual work

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09222974A (ja) * 1996-02-16 1997-08-26 Fuji Xerox Co Ltd 言語解釈表示方法とその方法を用いた装置およびシステム
JP2003345751A (ja) * 2002-05-22 2003-12-05 Nippon Telegr & Teleph Corp <Ntt> プラットフォーム制御方法、プラットフォーム制御装置、プラットフォーム制御プログラムおよびそのプログラムを格納した記憶媒体
JP2004295463A (ja) * 2003-03-27 2004-10-21 Nippon Telegr & Teleph Corp <Ntt> アプリケーション管理システム及びその方法
JP2008527600A (ja) * 2005-01-10 2008-07-24 エルジー エレクトロニクス インコーポレーテッド 記録媒体、ならびにローカルストレージを用いて記録媒体からデータを再生する装置および再生装置
JP2007251803A (ja) * 2006-03-17 2007-09-27 Sharp Corp 記録再生装置、携帯端末装置、記録再生システム、及び記録再生方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190104394A (ko) 2017-01-24 2019-09-09 가부시키가이샤 한도오따이 에네루기 켄큐쇼 표시 장치 및 전자 기기
US11200859B2 (en) 2017-01-24 2021-12-14 Semiconductor Energy Laboratory Co., Ltd. Display device and electronic device

Also Published As

Publication number Publication date
EP2581908A4 (en) 2016-04-13
CN102369577A (zh) 2012-03-07
JP2012018672A (ja) 2012-01-26
EP2581908A1 (en) 2013-04-17
US20110305435A1 (en) 2011-12-15
US8588580B2 (en) 2013-11-19
JPWO2011155098A1 (ja) 2016-05-26
JP5416172B2 (ja) 2014-02-12
CN102369577B (zh) 2016-10-26
JP4814407B1 (ja) 2011-11-16

Similar Documents

Publication Publication Date Title
JP5416172B2 (ja) 再生装置、記録媒体、再生方法、プログラム
JP4403437B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8433929B2 (en) Data management device, stored data management method and computer program
JP4649865B2 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
US8504607B2 (en) Information processing device, information processing method, recording medium, and program
US20060227973A1 (en) Information processing device, information recording medium, information processing method, and computer program
JP5395074B2 (ja) 再生装置、再生方法、プログラム
JP2007150587A (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
WO2010038455A1 (ja) 再生装置
JP5529964B2 (ja) 再生装置、再生方法、プログラム
JP2007128584A (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP2007020211A (ja) 情報提供システム、再生装置および方法、情報提供装置および方法、記録媒体、並びにプログラム
WO2009157163A1 (ja) 再生装置、再生装置の制御方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180001251.6

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2011524041

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 3419/KOLNP/2011

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2011745463

Country of ref document: EP

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

Ref document number: 11745463

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE