Technical FieldThe present invention relates to an information processingapparatus for executing a program, and particularly to a system forexecuting a program for using a plurality of devices that are uniqueto a broadcast receiving apparatus.
Background ArtIn hardware for broadcast receiving apparatuses representedby a television and a Set Top Box (STB), a configuration is adoptedfor realizing a greater function by forming an "information transferpath" series, where a plurality of devices having different functionsare interconnected so that the output of one becomes the input ofthe other. For instance, taking the case of the outputting ofimages/sound onto a screen by a digital broadcast receivingapparatus, as an example, in terms of hardware, a "tuner device", a"TS decoder device", and an "AV decoder device" are connected, inthe order of mention, to form an "information transfer path" series.The tuner device receives broadcast signals, and outputs a MotionPicture Expert Group-2 (MPEG-2) transport stream by filtering,using tuning information, such as frequency, or the like, as keys.The TS decoder device receives the MPEG-2 transport stream, andsorts out the MPEG-2 transport stream packet (hereinafter as TSpacket) transmitting the desired video/audio data, from within theinputted MPEG-2 transport stream. It outputs a PacketizedElementary Stream (PES) packet containing the video/audio datatransmitted by the matching TS packet. The AV decoder devicereceives the PES packet. It decodes the video/audio datatransmitted by the PES packet, and outputs such decoded data in aform which can be displayed on-screen. Here, the accomplishment of the respective functions of each of the devices makes possible thedisplay of images/sound onto a screen.
In order to carry out parallel processing in a broadcastreceiving apparatus such as this, there are cases where a plurality ofdevices of the same type exists. For example, two tuner devicesand two AV decoder devices exist, and these are connected to a TSdecoder device. In addition, the TS decoder has a function forestablishing "information transfer paths" in flexible combinations,with regard to the plurality of tuner devices and AV decoder devices.In such a case, it is possible to place the TS decoder device inbetween a tuner device A and an AV decoder device A to establish an"information transfer path 1", and place the TS decoder device inbetween a tuner device B and an AV decoder device B to establish an"information transfer path 2". In such a case, the "informationtransfer path 1" and the "information transfer path 2" demodulateMPEG-2 transport streams from a broadcast signal fullyindependently from one another, making possible the simultaneousdecoding of a plurality of video/audio data, and enabling therealization of the so-called "Picture In Picture (hereinafter as PIP)"function for simultaneously displaying two types of images/sound ona single screen. In such devices, there is no necessity forimplementing PIP at all times, and normally, single image displayand PIP display can be switched, through inputs in a remote control,or the like, by a user. The "official publication of JapaneseLaid-Open Patent Application No. 8-289220" is provided as a case inpoint for the method of use of each device, in cases such as the oneabove. This invention conceives a method for realizing PIP in abroadcast receiving apparatus having two tuner devices, one AVdecoder, and one PIP data processing device. In this invention, thetwo tuners are ranked as a "main tuner" and an "insert screen tuner",and using the "insert screen tuner" during PIP display, enables theoutputting of video/audio considered for selection, on a specified area of the screen, while the video/audio already selected, remainsdisplayed on the entirety of the screen.
At present, a standard, referred to as Digital VideoBroadcasting-Multimedia Home Platform (DVB-MHP), for operatingan application on a broadcast receiving apparatus has been definedin Europe, and its operation has already begun. On the other hand,in the United States, Open Cable Application Platform (OCAP)standard, based on the DVB-MHP standard, is being laid out, and isscheduled to start operation sometime in 2005. In addition, thedevelopment and operation of similar standards is being pursued inother countries. A broadcast receiving apparatus, conforming tosuch application execution standards, is equipped with a function forexecuting a program obtained using a method such as downloadingfrom a broadcast signal, and so on. Typical examples that can begiven for such programs are games, Electrical Program Guide (EPG)applications, and so on.
Naturally, applications which simultaneously display aplurality of video/audio data on a single screen, such as theaforementioned PIP, advanced function EPG, and so on, are assumedas programs for execution on broadcast receiving apparatusescapable of program execution. In order to output a plurality ofvideo/audio data simultaneously on a single screen, as representedin the example disclosed in the aforementioned patent, the controlof multiple devices, particularly the setting of the "informationtransfer path" of each device, must be performed properly. InOCAP/DVB-MHP API (Application Program Interface), the functionfor individually controlling a tuner device, a TS decoder device, anAV decoder device, and so on, is already provided, and theimplementation of such an application is not impossible, even undercurrent conditions. Unfortunately, there is no function for settingan "information transfer path" between the individual devices in thecurrent standard. For example, it is not possible to perform a designation to establish an "information transfer path" between atuner device A, from among a plurality of tuner devices, and acertain TS decoder device B, from among a plurality of TS decoderdevices. In OCAP/DVB-MHP, during video/audio outputting, forexample, first the demodulation of an MPEG-2 transport streamtransmitting video/audio data for outputting is set by furnishingtuning information such as frequency, and so on, to the tuner device.Next, an identifier for the video/audio data to be outputted to the AVdecoder is set. At this point, a program, referred to as"middleware" (hereinafter as OCAP/DVB-MHP middleware), forimplementing the functions prescribed in the OCAP/DVB-MHPstandard by using the functions found in the OS of a broadcastreceiving apparatus, searches within the broadcast receivingapparatus for the tuner device that outputs the MPEG-2 transportstream that includes the video/audio data pointed out by theidentifier designated by the AV decoder. If such tuner device isfound, a TS decoder is placed in between, with respect to the twodevices, and an "information transfer path" is implicitly established.
Standards such as these, relieve a program from complicatedprocesses concerning device management, and at first glance, seembeneficial to a program. However, from an opposite viewpoint, theimplicit establishment of "information transfer paths" by middlewaremeans that the program is unable to manage "information transferpaths". For example, consider the hardware configuration shown inFIG. 1. FIG. 1 illustrates a digital broadcast receiving apparatushaving a structure with two tuners (tuner 101a andtuner 101b), andtwo AV decoders (AV decoder 103a andAV decoder 103b), which arerespectively connected via aTS decoder 102. Consider theoperation of a PIP program on the present hardware. In FIG.1,since two tuners and two AV decoders exist in terms of hardware, ifall of such devices are taken and two "information transfer paths",between thetuner 101a and theAV decoder 103a, and between thetuner 101b and theAV decoder 103b, via theTS decoder 102, areestablished, a PIP program able to fully separate and switch two setsof images can be realized. However, in current OCAP/DVB-MHPmiddleware, there is no function for establishing "informationtransfer paths" between devices. At the point when a PIP programspecifies video and audio data and issues a decode request, an"information transfer path" is implicitly established between an AVdecoder and a tuner demodulating the MPEG-2 transport streamwhich includes such video and audio data, via a TS decoder. Assuch, for example, in the case where a decode request forvideo/audio data within the same MPEG-2 transport stream is issuedto two AV decoders, it is possible to have "information transferpaths" being established between a single tuner and the two AVdecoders. In terms of the example in FIG. 1, "information transferpaths" would be set, via theTS decoder 102, between thetuner101a and theAV decoder 103a, as well as between thetuner 101aand theAV decoder 103b. In such a case, and additionally, in thecase where the implementation of the OCAP/DVB-MHP middleware issuch that an "information transfer path" established once betweenan AV decoder and a tuner is maintained, and where the"information transfer path" established first, is used for decoderequests issued thereafter to AV decoders, the PIP program will onlybe able to use one tuner from then on, and the two AV decoders willonly be able to simultaneously decode video data within the sameMPEG-2 transport stream.
A method that promotes in middleware, the implicitestablishment of "information transfer paths" between devices inthe above manner, reduces the burdens related to device controllingfor a program, but at the same time also reduces the flexibility withregard to device management. In addition, as shown in theexample using FIG. 1, since the dependency of program operationson the implementation of middleware is increased, there is a possibility of causing such instability as having a program operatedifferently for each environment.
Disclosure of the InventionThus, the present invention was conceived in view of theaforementioned circumstances, and has providing an informationprocessing apparatus which is able to control the setting of aninformation transfer path between devices from a program(application program), as an objective.
In order to achieve the aforementioned objective, theinformation processing apparatus in the present invention is aninformation processing apparatus having a plurality of devices forexecuting specific functions, the information processing apparatusincluding a program execution unit operable to execute a program,and a device management unit operable to manage informationregarding the devices, as well as set an information transfer pathbetween the devices, wherein the device management unit includesan information path setting unit operable to set an informationtransfer path between the devices based on a request from theprogram executed by the program execution unit.
Accordingly, it is possible for the program executed by theprogram execution unit to set an information transfer path in termsof hardware.
Here, the device management unit may further include adevice identifier notification unit operable to notify the programexecuted by the program execution unit of device identifiers foridentifying the devices, based on a request from the program, andthe information path setting unit may set an information transferpath in a designated sequence between devices designated by theprogram using a plurality of device identifiers.
Furthermore, the information path setting unit may set aninformation transfer path between two designated devices, in the case where the two devices are designated by the program using twodevice identifiers.
Furthermore, the information path setting unit may set aninformation transfer path in a designated sequence between two ormore designated devices, in the case where the two or more devicesare designated by the program using two or more device identifiers.
Accordingly, it is possible for the program to set aninformation transfer path in terms of hardware by designatingdevices.
In addition, the device identifier notification unit may notifythe program of the device identifiers corresponding to devices thatare of a type designated by the program.
Accordingly, it is possible for the program to obtain only thedevice identifiers of the devices that match the type of the device tobe used thereby.
Furthermore, the device identifier notification unit may notifythe program of the device identifiers corresponding to all devicesthat can be set in an information transfer path with a devicespecified by a device identifier designated by the program.
Accordingly, it is possible for the program to obtain the deviceidentifiers indicating the devices that can be set in an informationtransfer path with the designated device.
Furthermore, the device identifier notification unit may notifythe program of the device identifiers corresponding to all devicesthat are set in an information transfer path with a device specifiedby a device identifier designated by the program.
Accordingly, it is possible for the program to obtain the deviceidentifiers indicating the devices that are already set in aninformation transfer path with a designated device.
Furthermore, the device identifier notification unit may notifythe program of the device identifiers corresponding to devices thatcan be set in an information transfer path with a specified device, and at the same time, are not yet a part of an information transferpath, said specified device being specified by a device identifierdesignated by the program.
Accordingly, it is possible for the program to obtain the deviceidentifiers indicating the devices that can be immediately set in aninformation transfer path with a designated device.
Furthermore, the device management unit may furtherinclude a device shareability notification unit operable to notify theprogram of whether or not a device specified by a device identifierdesignated by the program can be set in a plurality of informationtransfer paths.
Accordingly, it is possible for the program to obtain ajudgment result of whether or not the designated device can be setin a plurality of information transfer paths.
Here, the device shareability notification unit may notify theprogram of whether or not a device specified by a device identifierdesignated by the program can be set in a plurality of informationtransfer paths, by sending notice of a maximum number ofinformation transfer paths in which the device can be set in.
Accordingly, it is possible for the program to obtain thenumber of information transfer paths in which the designated devicecan be set in, and in addition, it is possible to perform a judgment asto whether or not the device can be set in a plurality of informationtransfer paths.
Furthermore, the device management unit may furtherinclude a function interpretation unit operable to specify devicesthat are necessary for realizing a greater function, based on afunction identifier which indicates the greater function realized by aplurality of the devices, and the information path setting unit mayset an information transfer path between the devices specified bythe function interpretation unit.
Accordingly, it is possible to set an information transfer path without designating individual devices.
Furthermore, the program receives a response from thedevice management unit and may synchronously resume a process,when the program makes a request to the device management unit.
Accordingly, it is possible for the program executed by theprogram execution unit to easily recognize a timing of a conclusionof an information path setting.
Furthermore, the program may asynchronously execute aprocess regardless of a response from the device management unit,when the program makes a request to the device management unit.
Accordingly, it is possible for the program executed by theprogram execution unit to proceed with another process thereof,while the information processing apparatus performs informationpath setting.
Furthermore, the information path setting unit may not set anew information transfer path, in the case where any of a plurality ofdevices designated by the program is already set as a part ofanother information transfer path.
Accordingly, it is possible to protect an information transferpath that is already set, from unintended modification.
Furthermore, the information path setting unit may notify theprogram of a process result indicating whether a setting of aninformation transfer path between a plurality of devices designatedby the program succeeds or fails.
Accordingly, it is possible for the program executed by theprogram execution unit to acquire the process result of theinformation transfer path.
Furthermore, the information path setting unit may notify theprogram of a reason for failure, in the case where the setting of theinformation transfer path between the plurality of devicesdesignated by the program fails.
Accordingly, it is possible for the program executed by the program execution unit to obtain the reason for the failure of aninformation transfer path setting.
Furthermore, the device management unit may furtherinclude an information path cancellation unit operable to performsetting cancellation of the information transfer path set betweendevices, based on a request from the program executed by theprogram execution unit.
Accordingly, it is possible for the program to cancel aninformation transfer path that has been set.
Furthermore, the device management unit may furtherinclude a device identifier notification unit operable to notify theprogram executed by the program execution unit of deviceidentifiers for identifying the devices, based on a request from theprogram, and the information path cancellation unit may performsetting cancellation of the information transfer path set in adesignated sequence between devices designated by the programusing a plurality of device identifiers.
Furthermore, the information path cancellation unit mayperform setting cancellation of an information transfer path setbetween two designated devices, in the case where the two devicesare designated by the program using two device identifiers.
Furthermore, the information path cancellation unit mayperform setting cancellation of an information transfer path set in adesignated sequence between two or more designated devices, inthe case where the two or more devices are designated by theprogram using two or more device identifiers.
Accordingly, it is possible for the program to cancel aninformation transfer path that has been set, by designating devices.
Furthermore, the device management unit may furtherinclude a function interpretation unit operable to specify devicesthat are necessary for realizing a greater function, based on afunction identifier which indicates the greater function realized by a plurality of the devices, and the information path cancellation unitmay perform setting cancellation of an information transfer path setbetween the devices specified by the function interpretation unit.
Accordingly, it is possible to cancel an information transferpath without designating individual devices.
Furthermore, the information path cancellation unit maynotify the program of a process result indicating whether a settingcancellation of an information transfer path between a plurality ofdevices designated by the program succeeds or fails.
Accordingly, it is possible for the program to acquire theprocess result of an information transfer path cancellation.
Furthermore, the information path cancellation unit maynotify the program of a reason for failure, in the case where thesetting cancellation of the information transfer path between theplurality of devices designated by the program fails.
Accordingly, it is possible for the program to obtain the reasonfor the failure of a cancellation of an information transfer path.
Furthermore, the device management unit may furtherinclude a device number notification unit operable to notify theprogram of a number of the devices existing in the informationprocessing apparatus, based on a request from the programexecuted by the program execution unit.
Accordingly, it is possible for the program to obtain thenumber of the devices existing in the information processingapparatus.
Furthermore, the device number notification unit may notifythe program of the number of devices corresponding to a type of adevice, said type being designated by the program.
Accordingly, it is possible for the program to obtain thenumber of devices that match the type of the device to be usedthereby.
Furthermore, the device management unit may further include a path setting possibility notification unit operable to notifythe program of whether or not an information transfer path can beset between the devices, based on a request by the programexecuted by the program execution unit.
Accordingly, it is possible for the program to acquire inadvance, a judgment as to whether or not an information transferpath can be set.
Furthermore, the device management unit may furtherinclude a device identifier notification unit operable to notify theprogram executed by the program execution unit of deviceidentifiers for identifying the devices, based on a request from theprogram, and the path setting possibility notification unit may notifythe program of whether or not an information transfer path can beset in a designated sequence between devices designated by theprogram using a plurality of device identifiers.
Accordingly, it is possible for the program to obtain inadvance, a judgment as to whether or not an information transferpath can be set by designating devices.
Furthermore, the path setting possibility notification unit maynotify the program of whether or not an information transfer pathcan be set between two designated devices, in the case where thetwo devices are designated by the program using two deviceidentifiers.
Accordingly, it is possible for the program to obtain ajudgment as to whether or not an information transfer path can beset between two devices.
Furthermore, the path setting possibility notification unit maynotify the program of whether or not an information transfer pathcan be set in a designated sequence between two or moredesignated devices, in the case where the two or more devices aredesignated by the program using two or more device identifiers.
Accordingly, it is possible for the program to obtain a judgment as to whether or not an information transfer path can beset between two or more devices.
Furthermore, the device management unit may furtherinclude a function interpretation unit operable to specify devicesthat are necessary for realizing a greater function, based on afunction identifier which indicates the greater function realized by aplurality of the devices, and the path setting possibility notificationunit may notify the program of whether or not an informationtransfer path can be set between the devices specified by thefunction interpretation unit.
Accordingly, it is possible for the program to obtain ajudgment as to whether or not a required information transfer pathcan be set without designating individual devices.
Furthermore, the device management unit may furtherinclude a path status notification unit operable to notify the programof whether or not an information transfer path is set between thedevices, based on a request from the program executed by theprogram execution unit.
Accordingly, it is possible for the program to obtain ajudgment as to whether or not an information transfer path isalready set between the devices.
Furthermore, the device management unit may furtherinclude a device identifier notification unit operable to notify theprogram executed by the program execution unit of deviceidentifiers for identifying the devices, based on a request from theprogram, and the path status notification unit may notify theprogram of whether or not an information transfer path is set in adesignated sequence between the devices designated by theprogram using a plurality of device identifiers.
Accordingly, it is possible for the program to obtain ajudgment as to whether or not an information transfer path isalready set between the devices, by designating devices.
Furthermore, the path status notification unit may notify theprogram of whether or not an information transfer path is setbetween two designated devices, in the case where the two devicesare designated by the program using two device identifiers.
Accordingly, it is possible for the program to obtain ajudgment as to whether or not an information transfer path isalready set between two devices.
Furthermore, the path status notification unit may notify theprogram of whether or not an information transfer path is set in adesignated sequence between two or more designated devices, inthe case where the two or more devices are designated by theprogram using two or more device identifiers.
Accordingly, it is possible for the program to obtain ajudgment as to whether or not an information transfer path isalready set between two or more devices.
Furthermore, the device management unit may furtherinclude a function interpretation unit operable to specify devicesthat are necessary for realizing a greater function, based on afunction identifier which indicates the greater function realized by aplurality of the devices, and the path setting possibility notificationunit may notify the program of whether or not an informationtransfer path is set between the devices specified by the functioninterpretation unit.
Accordingly, it is possible for the program to obtain ajudgment as to whether or not a required information transfer pathis already set without designating individual devices.
Furthermore, the information path setting unit may alwayspreferentially set an information transfer path which has beenrequested first, in the case where setting of information transferpaths which include the same device are requested by a plurality ofprograms executed by the program execution unit.
Accordingly, it is possible to settle a competition among a plurality of programs, for a device.
Furthermore, the program execution unit may managepriority levels among a plurality of programs, and perform programpriority comparison using the priority levels.
Accordingly, it is possible to have a device management whichis consistent in that, when a competition among a plurality ofprograms for a device occurs, a program having a higher prioritylevel is given authority to use the device.
Furthermore, the information path setting unit may alwayspreferentially set an information transfer path for a program havinga high priority level, in the case where setting of informationtransfer paths which include the same device are requested by aplurality of programs executed by the program execution unit.
Accordingly, it is possible for a program having a high prioritylevel to set an information transfer path, when a competition amonga plurality of programs for a device occurs.
Furthermore, in the case where, after setting an earlierinformation transfer path, a setting of an information transfer pathincluding a device set in the earlier information transfer path isrequested by another program having a higher priority level, theinformation path setting unit may set the information transfer pathrequested by said another program and notify a program whichrequested the earlier information transfer path about the setting.
Accordingly, it is possible for the program having a lowpriority level, which requested the earlier information transfer path,to know that a device within the information transfer path has beentaken.
Furthermore, in the case where the device set in the earlierinformation transfer path and then set in the information transferpath requested by said another program becomes usable again, theinformation path setting unit may notify the program whichrequested the earlier information transfer path that the device is usable again.
Accordingly, it is possible for the program having a lowpriority level, which requested the earlier information transfer path,to know that the device which was taken has become usable again.
Furthermore, in the case where the device set in the earlierinformation transfer path, and then set in the information transferpath requested by said another program becomes usable again, theinformation path setting unit may reset the earlier informationtransfer path and notify the program which requested the earlierinformation transfer path, of the resetting.
Accordingly, it is possible for the program having a lowpriority level, which requested the earlier information transfer path,to know that the device which was taken has become useable againand the information transfer path has been reset.
Furthermore, it is preferable that the device managementunit controls the device according to a request from the program,and notifies the program of information regarding the deviceaccording to a request from the program.
In other words, the device management unit is middleware,and is able to control the setting of an information transfer pathbetween devices, from the program executed by the programexecution unit.
In addition, the present invention can be realized not only asan information processing apparatus such as this. The presentinvention can also be realized as an information processing methodwhich includes, as steps, means that are characteristic of aninformation processing apparatus such as this, and also as aprogram which causes a computer to execute such steps.Furthermore, it goes without saying that such a program can bedistributed via recording media such as a CD-ROM, or transmissionmedia such as the internet, or the like.
As is clear from the aforementioned explanation, according to the information processing apparatus in the present invention, it ispossible to control the setting of an information transfer path from aprogram (application program).
Further Information about Technical Background to thisApplicationThe disclosure of Japanese Patent Application No.2003-287626 filed on August 06, 2003 including specification,drawings and claims is incorporated herein by reference in itsentirety.
Brief Description of DrawingsThese and other objects, advantages and features of theinvention will become apparent from the following descriptionthereof taken in conjunction with the accompanying drawings thatillustrate a specific embodiment of the invention. In the Drawings:
- FIG. 1 is a hardware configuration diagram for explaining theissues in the present invention.
- FIG. 2 is a diagram of a configuration of the broadcast systemin the present invention.
- FIG. 3 shows an example of the use of the frequency bandrange used in transmission between a broadcast station-side systemand terminal apparatuses, in a cable television system, in thepresent invention.
- FIG. 4 shows an example of the use of the frequency bandrange used in transmission between a broadcast station-side systemand terminal apparatuses, in a cable television system, in thepresent invention.
- FIG. 5 shows an example of the use of the frequency bandrange used in transmission between a broadcast station-side systemand terminal apparatuses, in a cable television system, in thepresent invention.
- FIG. 6 is a structure diagram of a TS packet defined in theMPEG-2 specification.
- FIG. 7 is a pattern diagram of an MPEG-2 transport stream.
- FIG. 8 shows an example of a partitioning during thetransmission of a PES packet defined in the MPEG-2 specification,using a TS packet.
- FIG. 9 shows an example of a partitioning during thetransmission of an MPEG-2 section defined in the MPEG-2specification, using a TS packet.
- FIG. 10 is a structure diagram of an MPEG-2 section defined inthe MPEG-2 specification.
- FIG. 11 is an example of the use of an MPEG-2 section definedin the MPEG-2 specification.
- FIG. 12 shows a configuration example of the hardwareconfiguration of a broadcast receiving apparatus in the presentinvention.
- FIG. 13 shows an example of the front panel of theinput unit1210 in the hardware configuration of theterminal apparatus 1200in the present invention.
- FIG. 14 shows a configuration example of the hardwareconfiguration of the broadcast receiving apparatus in the presentinvention.
- FIG. 15 shows a configuration example of the hardwareconfiguration of the broadcast receiving apparatus in the presentinvention.
- FIG. 16 shows a configuration example of the hardwareconfiguration of the broadcast receiving apparatus in the presentinvention.
- FIG. 17 shows an example of a front panel found in thehardware configuration example of the broadcast receivingapparatus in the present invention.
- FIG. 18 shows an example of a device connection in the broadcast receiving apparatus in the present invention.
- FIG. 19 shows an example of a device connection in thebroadcast receiving apparatus in the present invention.
- FIG. 20 shows an example of a device connection in thebroadcast receiving apparatus in the present invention.
- FIG. 21 shows an example of a device connection in thebroadcast receiving apparatus in the present invention.
- FIG. 22 is a conceptual diagram showing the relationship ofhardware and software in the broadcast receiving apparatus in thepresent invention.
- FIG. 23 is a diagram of the program configuration stored bythe terminal apparatus in the present invention.
- FIG. 24A and B show an example of an EPG executed by theterminal apparatus in the present invention.
- FIG. 25 is an example of information stored by the secondarystorage unit in the present invention.
- FIG. 26A, B, and C are examples of information stored by theprimary storage unit in the present invention.
- FIG. 27 is a pattern diagram representing the contents of aPAT prescribed in the MPEG-2 standard, in the present invention.
- FIG. 28 is a pattern diagram representing the contents of aPMT prescribed in the MPEG-2 standard, in the present invention.
- FIG. 29 is a pattern diagram representing the contents of anAIT prescribed in the DVB-MHP standard, in the present invention.
- FIG. 30 is a pattern diagram representing a file system,transmitted in the DSMCC format, in the present invention.
- FIG. 31A, B, C, and D show configuration examples of deviceconnection paths, in the present embodiment.
- FIG. 32 shows an example of the overall configuration ofdevice connection paths in the present embodiment.
- FIG. 33 shows the internal configuration of the devicemanager in the first embodiment of the present invention.
- FIG. 34 shows the sequence for the device type obtainmentby the device manager in the present invention.
- FIG. 35 shows the sequence for the device numberobtainment by the device manager in the present invention.
- FIG. 36 shows the sequence during the device objectobtainment by the device manager in the present invention.
- FIG. 37 shows the sequence for the device connectabilityobtainment by the device manager in the present invention.
- FIG. 38 shows the sequence for the device connection statusobtainment by the device manager in the present invention.
- FIG. 39 shows the sequence for device connection by thedevice manager in the present invention.
- FIG. 40 shows the sequence for device connectioncancellation by the device manager in the present invention.
- FIG. 41 shows the sequence for device connection by aprogram, using the device manager in the present invention.
- FIG. 42 shows a configuration example of the hardwareconfiguration of the broadcast receiving apparatus in the presentinvention.
- FIG. 43 shows the sequence for device connectabilityobtainment in the tenth embodiment of the present invention.
- FIG. 44 shows the sequence for device connectabilityobtainment in the eleventh embodiment of the present invention.
- FIG. 45 shows the sequence for the simplest implementationof device connectability obtainment in the eleventh embodiment ofthe present invention.
- FIG. 46 shows an example of a sequence for deviceconnection by a program in the nineteenth embodiment of thepresent invention.
- FIG. 47 shows the sequence for device object obtainment inthe twenty-second embodiment of the present invention.
- FIG. 48 shows the sequence during the operation of a plurality of programs, in the twenty-fifth embodiment of the presentinvention.
- FIG. 49 shows the sequence of operation during theoccurrence of a device connection conflict between programs, in thetwenty-sixth embodiment of the present invention.
- FIG. 50 shows the sequence of operation during theoccurrence of a device connection conflict between programs, in thetwenty-seventh embodiment of the present invention.
- FIG. 51 shows the sequence of operation during theoccurrence of a device connection conflict between programs, in thetwenty-eighth embodiment of the present invention.
- FIG. 52 shows the sequence of operation during theoccurrence of a device connection conflict between programs, in thetwenty-ninth embodiment of the present invention.
Best Mode for Carrying Out the Invention(First Embodiment)The present invention assumes the three types of operationalconfigurations, namely a satellite system, a terrestrial system, anda cable system, as its target broadcast systems. The satellitesystem is a configuration that uses a satellite to transmit broadcastsignals to a broadcast receiving apparatus. The terrestrial systemis a configuration that uses a terrestrial signal transmitter totransmit broadcast signals to a broadcast receiving apparatus. Thecable system is a configuration that uses a cable head-end totransmit broadcast signals to a broadcast receiving apparatus. Asthe present invention does not bear a direct relation to thedifferences in each broadcast system, it is applicable, irrespective ofthe broadcast system.
The embodiments of the broadcast system concerning thepresent invention shall be explained with reference to the diagrams.FIG. 2 is a block diagram showing the relationship of devices making up a broadcast system, and is made up of a broadcast station-sidesystem 201, and three terminal apparatuses, namely aterminalapparatus A 211, a terminal apparatus B212, and aterminalapparatus C 213. There are wired and wireless cases for thelink221 between the broadcast station-side system and each terminalapparatus. For example, in a cable system, a broadcaststation-side system and each terminal apparatus are linked by wire.On the other hand, between a broadcast station-side system andeach terminal apparatus in a satellite/terrestrial system, there areno wire links for the downward direction (from the broadcaststation-side system to each terminal apparatus), and a broadcastsignal is transmitted using radio waves. For the upward direction(from each terminal apparatus to the broadcast-side system), bothcases of wired links such as telephone lines and wired internet, andwireless links which use wireless communication, exist. Eachterminal apparatus transmits information such as user inputs, to thebroadcast station-side system. Although the broadcaststation-side system is linked to three terminal apparatuses in thepresent embodiment, the present invention is still applicable evenwhen an arbitrary number of terminal apparatuses are linked to thebroadcast station-side system.
The broadcast station-side system 201 includes data for video,audio and data broadcasting, and the like, into broadcast signalsand transmits such signals to a plurality of terminal apparatuses.Broadcast signals are transmitted using a frequency within afrequency band set according to the prescribed operation of abroadcasting system, the laws of a region or country where abroadcast system operates, or the like.
An example of a prescribed broadcast signal transmission isgiven as an example. In the cable system shown in this example,the frequency band used for broadcast signal transmission ispartitioned and used according to the content of the data and the direction of the transmission (upward, downward). FIG. 3 is a tableshowing an example of a frequency band partition. The frequencyband is mainly partitioned into two types, namely Out Of Band(abbreviated as OOB) and In-Band. 5 to 130 MHz is allocated forOOB, and is mainly used for the exchange of data between thebroadcast station-side system 201 and theterminal apparatus A211, theterminal apparatus B 212, and theterminal apparatus C213. 130 MHz to 864 MHz is allocated for In-Band, and is usedmainly for broadcast channels which include video/audio. TheQPSK modulation scheme is used in the OOB, and the QAM64 orQAM256 modulation schemes are used in the In-Band frequencies.Detailed explanation regarding modulation scheme technology shallbe omitted as it is public knowledge of limited concern in the presentinvention. FIG. 4 shows a more detailed example of the use of theOOB frequency band. 70 MHz to 74 MHz is used for datatransmission from the broadcast station-side system 201, with alltheterminal apparatus A 211,terminal apparatus B 212, andterminal apparatus C 213, receiving the same data from thebroadcast station-side system 201. On the other hand, 10.0 MHz to10.1 MHz is used for the data transmission from theterminalapparatus A 211 to the broadcast station-side system 201, 10.1 MHzto 10.2 MHz is used for the data transmission from theterminalapparatus B 212 to the broadcast station-side system 201, and 10.2MHz to 10.3 MHz is used for the data transmission from theterminalapparatus C 213 to the broadcast station-side system 201.Through this, data specific to each terminal apparatus can betransmitted to the broadcast station-side system 201 from each oftheterminal apparatus A 211,terminal apparatus B 212, andterminal apparatus C 213. FIG. 5 shows an example for the use ofthe In-Band frequency band. 150 to 156 MHz and 156 to 162 MHzare allotted to atelevision channel 1 and atelevision channel 2,respectively, with frequencies subsequently being allotted to television channels in 6 MHz intervals. 310 MHz onwards is allottedto radio channels in 1MHz units. Each of the respective channelsmay be used for analog broadcast or digital broadcast. In the caseof digital broadcast, data is transmitted in the TS Packet formatbased on the MPEG-2 standard, and in addition to audio and video,various types of data for data broadcasting can also be transmitted.
In order to transmit the appropriate broadcast signal to aterminal apparatus using the respective frequency bands, thebroadcast station-side system 201 has a QPSK modulation unit, aQAM modulation unit, and so on. In addition, in order to receivedata from a terminal apparatus, it has a QPSK demodulation device.Moreover, the broadcast station-side system 201 is assumed topossess the various devices associated with the respectivemodulation units, as well as the demodulation unit. However, asthe present invention is mainly concerned with a terminal apparatus,detailed explanation shall be omitted.
Theterminal apparatus A 211,terminal apparatus B 212, andterminal apparatus C 213 receive and reproduce the broadcastsignal from the broadcast station-side system 201. In addition,they transmit data which is specific to each terminal apparatus tothe broadcast station-side system 201. The three terminalapparatuses adopt the same configuration in the presentembodiment.
Moreover, although the details of an example regarding theoperation of a cable system are introduced in the present example,the present invention can also be applied to configurations otherthan a satellite, a terrestrial system, as well as a cable system. Insatellite and terrestrial systems, both wired and wireless cases existin the links between the broadcast station-side system and eachterminal apparatus, as previously mentioned. Moreover, thefrequency bands, frequency interval, modulation scheme, broadcaststation-side system configuration, and so on, are different depending on the type, operation, and so on, of the broadcastsystem. However, these bear no relevance to the present inventionand the present invention can be applied regardless of how they areprescribed.
The broadcast station-side system 201 modulates an MPEG-2transport stream and transmits it by including it in a broadcastsignal. A broadcast receiving apparatus receives and demodulatesthe broadcast signal. It then replicates the MPEG-2 transportstream from within which it extracts and uses necessary information.In order to explain the functions and the structure of connections ofthe devices present in the digital broadcast receiving apparatus,first the structure of an MPEG-2 transport stream shall be describedin brief.
FIG. 6 is a diagram showing the structure of a TS packet. ATS packet 600 has a length of 188 bytes, and is made up of aheader601, anadaptation field 602, and apayload 603. Theheader 601holds the control information of the TS packet. It has a length of 4bytes and adopts a structure as shown in 604. A field described asa "Packet ID (hereinafter as PID)" is carried within this, and theidentification of a TS packet is performed using the value of the PID.Theadaptation field 602 holds additional information such as timeinformation, and so on. The existence of theadaptation field 602 isnot essential and there are cases where it is not present. Thepayload 603 holds the information transmitted by the TS packetsuch as video/audio, data for data broadcasting, and so on.
FIG. 7 is a schematic diagram of an MPEG-2 transport stream.ATS packet 701 and aTS packet 703 hold aPID 100 in the header,and hold information regarding avideo 1 in the payload. ATSpacket 702 and ATS packet 705 hold aPID 200 in the header, andholdinformation regarding data 1 in the payload. ATS packet 704holds aPID 300 in the header, and holdsinformation regarding audio1 in the payload.
The MPEG-2transport stream 700 is made up of consecutiveTS packets such as theTS packets 701 to 705. The TS packet holds,in its payload, a variety of information such as video and audio, datafor data broadcasting, and so on. The broadcast receivingapparatus receives a TS packet and, by extracting the informationheld by each TS packet, reproduces the video/audio and uses datasuch as program information, and so on. At this point, TS packetsholding the same PID hold the same type of information. So in FIG.7, theTS packet 701 and theTS packet 703 both transmitinformation regarding thevideo 1, and theTS packet 702 and theTSpacket 705 both transmit information regarding thedata 1.
Video and audio are represented in a format referred to as aPacketized Elementary Stream (PES) packet. During the actualtransmission of a PES packet, the PES packet is partitioned andstored into several TS packets. FIG. 8 shows an example of thepartitioning during a PES packet transmission. As aPES packet 801is too large to be stored and transmitted in the payload inside asingle TS packet, it is partitioned into a PESpacket partition A 802a,a PESpacket partition B 802b, and a PESpacket partition C 802c,and transmitted by way of the threeTS packets 803 to 805 havingthe same PID. Moreover, depending on the operation, a PES packettransmits not only video/audio data, but also data for captionsreferred to as subtitle.
Program information, data for data broadcasting, and so on,are represented using a format referred to as MPEG-2 section.During the actual transmission of an MPEG-2 section, the MPEG-2section is partitioned and stored into several TS packets. FIG. 9shows an example of the partitioning during the transmission of anMPEG-2 section. As an MPEG-2section 901 is too large to be to bestored and transmitted in the payload inside a single TS packet, it ispartitioned into asection partition A 902a, asection partition B 902b,and asection partition C 902c, and transmitted by way of the threeTS packets 903 to 905 having the same PID.
FIG. 10 represents the structure of an MPEG-2 section. AnMPEG-2section 1000 is made up of aheader 1001 and apayload1002. Theheader 1001 holds the control information of theMPEG-2 section. Its structure is represented by the headerstructure 1003. Thepayload 1002 holds the data transmitted bythe MPEG-2section 1000. A table_id found in the header structure1003 represents the type of the MPEG-2 section. In addition,table_id_extension is an extended identifier to be used indifferentiating MPEG-2 sections having roughly the same table_id.FIG. 11 provides a case where program information is transmitted,as an example of the use of an MPEG-2 section. In this example, aslisted inrow 1104, the information necessary for demodulating abroadcast signal is listed in the MPEG-2 section having a table_id of64 in the header structure 1003. In addition such MPEG-2 sectionis transmitted by a TS packet assigned with a PID of 16.
In this manner, MPEG-2 transport streams adopt a hierarchalstructure in order to transmit a variety of information. A broadcastreproduction apparatus is required to advance along the hierarchalstructure of the MPEG-2 transport stream while extracting theinformation contained by the MPEG-2 transport stream existing in abroadcast signal, and is equipped with the devices for such purpose.The respective devices are physically interconnected so that theoutput of one becomes the input of the other. Furthermore, when aplurality of the same type of device exists, aside from merely beingphysically connected, there is a need to establish an "informationtransfer path" indicating "which among the same type devices toinput to?", or "which among the same type devices' output should bereceived?" For example, even in an environment where a pluralityof tuners, one TS decoder, and a plurality of AV decoders exist, andwhere the TS coder is "physically" connected to all the tuners and AVdecoders, during the actual decoding of a single set of video/audio data, there is a need to establish a "information transfer path" by"logically" connecting a single tuner with a single AV decoder via theTS decoder. The phrases "physical connection", "logicalconnection", and "device logical connection path" to be used in allthe embodiments hereinafter shall be defined.
"Physical connection" indicates that devices are connected, interms of hardware. In saying that a device A and a device B are"physically connected", this indicates that the device A and thedevice B are connected in terms of hardware.
"Logical connection" indicates that devices are not only"physically connected" but that they also form an "informationtransfer path". In saying that the device A and the device B are"logically connected", this indicates that a "data transfer path" isestablished in such a way that the output of the device A becomesthe input of the device B, or alternatively, in such a way that theoutput of the device B becomes the input of the device A.
"Device logical connection path" refers to the "data transferpath" itself.
The "physical connection" of the device A and the device B isthe minimum condition for the "logical connection" of the device Aand the device B. In the case where the device A and the device Bare not "physically connected", the "logical connection" of the deviceA and the device B is not possible. In the case where the device Aand the device B are "logically connected", naturally, the device Aand the device B are "physically connected."
Hereinafter, the circumstances forming the premise of thepresent embodiment shall be explained.
FIG. 12 is a block diagram showing a typical hardwareconfiguration of a digital broadcast receiving apparatus. Aterminalapparatus 1200 is made up of atuner 1201, aTS decoder 1202, anAV decoder 1203, aspeaker 1204, adisplay 1205, aCPU 1206, asecondary storage unit 1207, aprimary storage unit 1208, aROM 1209, and aninput unit 1210.
Thetuner 1201 is a device that demodulates, according totuning information which includes the frequency designated by theCPU 1206, a broadcast signal modulated and transmitted from thebroadcast station-side system 201. The MPEG-2 transport streamobtained from the demodulation by thetuner 1201 is transmitted totheTS decoder 1202.
TheTS decoder 1202 is a device equipped with the function tosort out, from an MPEG-2 transport stream, the PES packet, MPEG-2section, or the like, that matches designated conditions, based onthe designation of the PID and the section sorting condition, and soon, designated by theCPU 1206. The PES packet sorted out by theTS decoder 1202 is transmitted to theAV decoder 1203. Inaddition, the MPEG-2 section sorted out by theTS decoder 1202undergoes a Direct Memory Access (DMA) transfer to theprimarystorage unit 1208, to be used by a program executed by theCPU1206. Moreover, aside from having the aforementioned PES packetand MPEG-2 section sorting function, theTS decoder 1202 also hasother functions such as a function for decoding (descrambling) acoded (scrambled) PES packet and MPEG-2 section, and a functionfor transmitting an inputted MPEG transport stream to anotherdevice which is physically connected to theTS decoder 1202.
TheAV decoder 1203 is a device which possesses the functionfor decoding digitally encoded video and audio. The AV signalobtained from the decoding by theAV decoder 1203 is transmittedto thespeaker 1204, and thedisplay 1205. Moreover, there arealso cases where theAV decoder 1203 cannot always decode videoand audio simultaneously. It is also possible to have a videodecoder and an audio decoder existing as separate units. Moreover,in some circumstances, there are cases where theAV decoder 1203also possesses a function for decoding subtitle data.
Thespeaker 1204 and thedisplay 1205 are devices possessing the function for respectively outputting the audio andvideo transmitted from theAV decoder 1203.
TheCPU 1206 executes a program operating on a broadcastreceiving apparatus. There are cases where the program executedby theCPU 1206 is included in theROM 1209, cases where it isdownloaded from a broadcast signal, network, or the like, and heldin theprimary storage unit 1208, cases where it is downloaded froma broadcast signal, network, or the like, and stored in thesecondarystorage unit 1207, and so on. Thetuner 1201, theTS decoder 1202,theAV decoder 1203 thespeaker 1204, thedisplay 1205, thesecondary storage unit 1207, theprimary storage unit 1208, theROM 1209, and theinput unit 1210, are controlled followinginstructions of the executed program.
Thesecondary storage unit 1207 is configured from devices inwhich information is not erased even during a cut-off of power in theterminal apparatus 1200 such as a non-volatile memory such as aFLASH-ROM, a Hard Disk Drive (HDD), and rewritable media such asCD-R, DVD-R, or the like. Thesecondary storage unit 1207performs the storage of information according to the instructions oftheCPU 1206. It is used for the storage of data, which if lost due toa power cut-off in theterminal apparatus 1200, would causeproblems.
Theprimary storage unit 1208 is configured from a RAM, orthe like, and is a device with a function for temporarily storinginformation according to the instructions of theCPU 1206, DMAtransfer-capable devices, or the like. The information held in theprimary storage unit 1208 is erased by a power cut-off in theterminal apparatus 1200.
TheROM 1209 is a non-rewritable memory device, and isspecifically configured from a ROM, CD-ROM, DVD, or the like. Theprogram executed by theCPU 1206 is stored in theROM 1209.
Theinput unit 1210 is specifically made up of a front panel, remote control, or the like, and accepts input from a user. FIG. 13is an example of the case where theinput unit 1210 is made up of afront panel. Afront panel 1300 includes seven buttons, namely anupcursor button 1301, a downcursor button 1302, aleft cursorbutton 1303, aright cursor button 1304, anOK button 1305, acancelbutton 1306, and anEPG button 1307. When a user pressesa button, the identifier of the button pressed is relayed to theCPU1206.
Furthermore, in FIG. 12 thedisplay 1205 and thespeaker1204 are represented as being in a form included inside thebroadcast receiving apparatus. However a type also exists in whichthedisplay 1205 and thespeaker 1204 are not contained in thebroadcast receiving apparatus, and the only external output is an AVsignal. The location of thedisplay 1205 and thespeaker 1204 isnot relevant to the present invention, and the present invention canbe applied to either type.
Next, FIG. 14 shows an example of a hardware configurationin the case where a plurality of devices exists in a terminalapparatus. Aterminal apparatus 1400 is made up of atuner 1401,aTS decoder 1402, anAV decoder 1403, aspeaker 1404, adisplay1405, aCPU 1406, asecondary storage unit 1207, aprimary unit1208, aROM 1209, and aninput unit 1210. The difference betweenFIG. 12 and FIG. 14 is that two tuners (atuner 1401a and atuner1401b) exist in the part represented by thetuner 1401, and two AVdecoders (anAV decoder 1403a and anAV decoder 1403b) exist inthe part represented by theAV decoder 1403. The devices found intheterminal apparatus 1400 that are identified by the samenumbering as in FIG. 12, perform the same operations as in FIG. 12,thus explanations shall be omitted. Hereinafter, the points ofdifference between the hardware configuration in FIG. 12 and thehardware configuration in FIG. 14 shall be explained.
Thetuner 1401a and thetuner 1401b are devices for demodulating, according to tuning information which includes thefrequency designated by theCPU 1406, a broadcast signalmodulated and transmitted from the broadcast station-side system201, and are capable of operating independently of one another.The MPEG-2 transport streams obtained from the demodulation bythetuner 1401a and thetuner 1401b are each transmitted to theTSdecoder 1402.
Furthermore, although two tuners are found in the hardwareconfiguration example shown in FIG. 14, the present invention canbe applied regardless of the number of tuners.
TheTS decoder 1402, like theTS decoder 1202, is a devicehaving a function for sorting out, from an inputted MPEG-2 transportstream, a PES packet, MPEG-2 section, or the like, that matchesdesignated conditions, based on the designation of a PID, a sectionfilter condition, and so on. Although in the hardware configurationin FIG. 14, MPEG-2 transport streams are inputted to theTS decoder1402 from thetuner 1401a and thetuner 1401b, the TS decoder cansort out PES packets, MPEG-2 sections, or the like, from each of thetransport streams. Furthermore, in the hardware configuration inFIG. 14, theTS decoder 1402 can transmit the PES packet sorted out,to the twoAV decoders 1403a and 1403b.
Moreover, although in the hardware configuration exampleshown in FIG. 14, the number of MPEG-2 transport stream inputs totheTS decoder 1402 is two, the present invention can be appliedregardless of such number. In addition, although in the presenthardware configuration, the number of PES packets outputted by theTS decoder 1402 to the AV decoders is two, the present inventioncan be applied regardless of such number. In addition, the presentinvention can be applied even if there is a plurality of theTS decoder1402 itself.
TheAV decoder 1403a andAV decoder 1403b are deviceshaving the function for decoding encoded video data and encoded audio data contained in the inputted PES packet. The video andaudio AV signals obtained from the decoding by theAV decoder1403a andAV decoder 1403b are respectively transmitted to thedisplay 1405 and thespeaker 1404. Within thebroadcast receivingapparatus 1400 in the hardware configuration example in FIG. 14,two AV decoders, namely theAV decoder 1403a and theAV decoder1403b exist, and it is possible for each to decode the PES packetoutputted from theTS decoder 1402, independently of one another.
Moreover, although the number of AV decoders in thehardware configuration example in FIG. 4 is two, the presentinvention can be applied regardless of such number.
Thespeaker 1404 and thedisplay 1405 are devices having thefunction to output sound and images, respectively. In the presentembodiment, the AV signals are inputted from two AV decoders, andthe form for outputting such is determined by the instruction of theCPU 1406. For example, it is possible to have designations such asoutputting only the output of theAV decoder 1403a, or displayingthe images outputted by theAV decoder 1403b on the entire screen,or displaying the images outputted by theAV decoder 1403a on thelower right quarter, in front of the images outputted by theAVdecoder 1403b, and so on.
TheCPU 1406 executes a program operating on the broadcastreceiving apparatus. For the program executed by theCPU 1406,there are cases where it is included in theROM 1209, cases where itis downloaded from a broadcast signal, network, or the like, andheld in theprimary storage unit 1208, cases where the program isdownloaded from a broadcast signal, network, or the like, and heldin thesecondary storage unit 1207, and so on. Thetuner 1401, theTS decoder 1402, theAV decoder 1403, thespeaker 1404, thedisplay 1405, thesecondary storage unit 1207, theprimary storageunit 1208, theROM 1209, and theinput unit 1210 are controlledaccording to the instructions of the program executed. As with thetuner 1401 and thedecoder 1403 in the hardware configuration inFIG. 14, in the case where a plurality of the same type of deviceexists, it is possible for theCPU 1406 to designate and control eachdevice individually.
In the hardware configurations shown in FIG. 12 and FIG. 14,each device is included in the terminal apparatus by factory default.However, in order to add a device that is not installed in the terminaldevice, as well as to improve the function of a device installed in theterminal, there are instances where the addition of an adaptermounted with the device to be added, is carried out. FIG. 15 isprovided as an example of such a hardware configuration. Aterminal apparatus 1500 is made up of atuner 1501, aTS decoder1502, anAV decoder 1203, aspeaker 1204, adisplay 1205, aCPU1506, asecondary storage unit 1207, aprimary storage unit 1208,aROM 1209, and aninput unit 1210. As the devices included in theterminal apparatus 1500 identified by the same numbering as in FIG.12 possess the same functions as in FIG. 12, their explanations shallbe omitted. Anadapter 1511 is provided in theterminal apparatus1500. A device with the function to be added on to theterminalapparatus 1500 is mounted on theadapter 1511. Theadapter 1511appearing in the hardware configuration example in FIG. 15, holds adevice (descrambler) which has an MPEG-2 transport stream as aninput, and with regard to the TS packets included in the inputtedMPEG-2 transport stream, descrambles (decodes) a TS packethaving the PID designated by theCPU 1506. In order for the deviceheld by theadapter 1511 to operate, it is necessary for it to inputthe MPEG-2 transport stream demodulated by thetuner 1501 to theadapter 1511. For that reason, thetuner 1501 inputs thedemodulated MPEG-2 transport stream to theadapter 1511. Afterdecoding the TS packet, designated by theCPU 1506, within theinputted MPEG-2 transport stream, theadapter 1511 transmits suchMPEG-2 transport stream to theTS decoder 1502. In the same way that theTS decoder 1202 in FIG. 12 can perform processing on theMPEG-2 transport stream inputted from thetuner 1201, it is alsopossible for theTS decoder 1502 to perform processing for theMPEG-2 transport stream inputted from theadapter 1511. TheCPU1506 can communicate with or control, not only the devices found intheterminal apparatus 1500, but also the devices within theadapter1511.
Furthermore, although theadapter 1511 is equipped with adescrambler in the hardware configuration shown in FIG. 15, thepresent invention can be applied regardless of the type and numberof devices held by theadapter 1511. In addition, although in thehardware configuration shown in FIG. 15, a configuration where theadapter 1511 receives an MPEG-2 transport stream from thetuner1501, and transmits the MPEG-2 transport stream to theTS decoder1502 is adopted, the present invention can be applied regardless ofwhich stage in the broadcast signal processing, the device mountedon theadapter 1511 is inserted. For example, the presentinvention can still be applied even in a configuration where theadapter 1511 is mounted with an AV decoder, receives a PES packetfrom theTS decoder 1502, and outputs AV signals to thedisplay1205, as well as thespeaker 1204. In addition, although PersonalComputer Memory Card International Association (PCMCIA) istypical for the interface between theterminal apparatus 1500 andtheadapter 1511, as the format of such interface bears no relevanceto the present invention, the present invention can be appliedregardless of the interface. Moreover, as the present invention isnot dependent on the number of adapters which can simultaneouslybe physically connected to theterminal apparatus 1500, the presentinvention can be applied even if it is possible for theterminalapparatus 1500 to have a plurality of adapters physically connected.
Next, FIG. 16 shows an example of a hardware configurationin the case where an adapter is further added onto a terminal apparatus in which a plurality of devices exists. Aterminalapparatus 1600 is made up of atuner 1601, aTS decoder 1602, anAV decoder 1403, aspeaker 1404, adisplay 1405, aCPU 1606, asecondary storage unit 1207, aprimary storage unit 1208, aROM1209, and aninput unit 1210. The devices included in theterminalapparatus 1600 that are identified by the same numbering as in FIG.12 or FIG. 14, have the same functions as in FIG. 12 or FIG. 14, thustheir explanations shall be omitted. Anadapter 1611 is provided intheterminal apparatus 1600. The device with the function to beadded on to theterminal apparatus 1600 is mounted on theadapter1611. As with theadapter 1511, theadapter 1611 in the hardwareconfiguration example in FIG. 16 is mounted with a descrambler.The descrambler mounted on theadapter 1611 accepts an input of aplurality of MPEG-2 transport streams, and outputs a plurality ofMPEG-2 transport streams. As there are two tuners found in thehardware configuration shown in FIG. 16, the MPEG-2 transportstreams outputted from atuner 1601a and atuner 1601b areinputted to theadapter 1611. Theadapter 1611 performsdescrambling on the two MPEG-2 transport streams inputted, andtransmits the two descrambled MPEG-2 transport streams to theTSdecoder 1602. In the same way that theTS decoder 1402 in FIG.14, can process the two MPEG-2 transport streams outputted by thetuner 1401a and thetuner 1401b, theTS decoder 1602 can processthe two inputted MPEG-2 transport streams. TheCPU 1606 cancommunicate with or control, not only the devices found in theterminal apparatus 1600, but also the devices within theadapter1611.
Moreover, in the hardware configuration shown in FIG. 16,with respect to theadapter 1611 which requires MPEG-2 transportstreams for input, the number of MPEG-2 transport streamstransmitted is the same as the number of thetuners 1601.However, it is not required that all MPEG-2 transport streams be inputted to theadapter 1611, and the present invention can beapplied, for example, even in configurations where only those of thetuner 1601a are inputted to theadapter 1611. In addition thepresent invention has no dependency on the format of informationbetween theterminal apparatus 1600 and theadapter 1611. Forexample, before inputting to theadapter 1611, the MPEG-2transport streams outputted by thetuner 1601a and thetuner1601b, can be combined to create an "adapter 1611 interpretable bitstream" which is then inputted to theadapter 1611, and suchprocessed bit stream outputted by theadapter 1611 can beseparated into two MPEG-2 transport streams before inputting to theTS decoder 1602.
POD used in an American cable system shall be explained asan example of an adapter. FIG. 17 shows the hardwareconfiguration of a terminal apparatus provided with aPOD 1711.The devices existing inside theterminal apparatus 1700 that areidentified by the same numbering as in FIG. 12 or FIG. 15 have thesame functions as in FIG. 12 or FIG. 15. ThePOD 1711 is equippedwith a descrambler, and like theadapter 1511 in FIG. 15, it receivesan MPEG-2 transport stream from thetuner 1701, and outputs adescrambled MPEG-2 transport stream to theTS decoder 1702. Inaddition, in the American cable system, a variety of information istransmitted in the upward and downward directions using theso-called OOB frequency band, as shown in FIG. 3 and FIG. 4. Atthis point, as the format of information to be sent out by thebroadcast station-side system 201, and the information format thatcan be interpreted by theterminal apparatus 1700 are different, theexchange of information, as it is, is not possible. ThePOD 1711includes a device for performing format conversion for therespective upward and downward information transmitted throughthe OOB. The information transmitted through the OOB ismodulated in the QPSK modulation scheme. As the present modulation scheme is publicly known technology, detailedexplanation shall be omitted. The terminal apparatus includes aQPSK demodulation device 1712 and aQPSK modulation device1713. TheCPU 1706 can control not only the devices within theterminal apparatus 1700, but also the devices within thePOD 1711.
With regard to the downward direction information receptionof theterminal apparatus 1700, first, theQPSK demodulation device1712 demodulates the downward signal transmitted from thebroadcast station-side system 201 through the OOB, and inputs thegenerated bit stream to thePOD 1711. ThePOD 1711 extracts theinformation designated by theCPU 1706 from among the variety ofinformation included in the bit stream. It then converts theextracted information into a format that can be interpreted by theprogram operating on theCPU 1706, and provides such convertedinformation to theCPU 1706.
With regard to the upward direction information transmissionof theterminal apparatus 1700, first theCPU 1706 transmits, to thePOD 1711, t he information to be transmitted to the broadcaststation-side system 201. ThePOD 1711 converts the informationinputted from theCPU 1706 to a form that can be interpreted by thebroadcast station-side system 201, and transmits this to theQPSKmodulation device 1713. TheQPSK modulation device 1713performs QPSK modulation on the information inputted from thePOD 1711, and transmits this to the broadcast station-side system201.
Using the respective devices appearing in FIG. 12 to FIG. 17,the broadcast receiving apparatus implements the function ofoutputting the transmitted video/audio data included in a broadcastsignal onto a screen, the function of extracting data such as programinformation, from a broadcast signal and providing such data to auser, and so on. These functions are realized by physically andlogically connecting each type of device in the broadcast receiving apparatus, in the proper form and proper sequence, and using thefunctions of these respective devices in the proper manner. FIG. 18shows a conceptual diagram illustrating the physical connectionsequence, processing details, and input/output data format, of theindividual devices. Aterminal apparatus 1800 includes atuner1801, aPID filter 1802, asection filter 1803, adescrambler 1804,anAV decoder 1805, a display/speaker 1806, and aprimary storageunit 1807. The devices appearing in FIG. 18 are on a one-to-one orone-to-many correspondence, with the devices appearing in FIG.12.
Thetuner 1801 corresponds to thetuner 1201. It hasbroadcast signals as input and outputs an MPEG-2 transport stream.
There are three devices within theTS decoder 1202 forprocessing an MPEG-2 transport stream, namely thePID filter 1802,thesection filter 1803, and thedescrambler 1804. The functions ofsuch devices shall now be described in detail.
ThePID filter 1802 extracts the TS packet bearing the PIDdesignated by theCPU 1206 from the inputted MPEG-2 transportstream, and further extracts the PES packet, MPEG-2 section, and soon, found in the payload of such TS packet. For instance, the casewhere thePES packet 801 is extracted under the circumstancesshown in FIG. 8, is taken as an example. First, theCPU 1206 setsthePID 100 on thePID filter 1802, and then sends out a request forthe extraction of the PES packet. At which point, the PID filterextracts, from among the TS packets flowing in the MPEG-2transport stream, theTS packets 803 to 805 having the PID of 100.It then further draws out the PESpacket partition A 802a, the PESpacket partition B 802b, and the PESpacket partition C 802c,contained in the payload of the extractedTS packets 803 to 805, andconnects such partitions to form thePES packet 801. One or moreof thePID filter 1802 is found within theTS decoder 1202.
Thedescrambler 1804 descrambles the PES packet and the MPEG-2 section outputted by thePID filter 1802. Even in the casewhere the PES packet and the MPEG-2 section are coded, they arestill transmitted by being partitioned, as in FIG. 8 and FIG. 9. Thedescrambler 1804 is able to identify the TS packet transmitting thecoded PES packet and MPEG-2 section, according to the PIDdesignation of theCPU 1206, and in addition, performsdescrambling using the descrambling key designated by theCPU1206. Explanation regarding the method for obtaining thedescrambling key shall be omitted as it bears no significantrelevance to the present invention. Thedescrambler 1804 outputsthe descrambled PES packet to theAV decoder 1805, and thedescrambled MPEG-2 section to thesection filter 1803, respectively.Descrambling is a process which is applied only to coded PESpackets and MPEG-2 sections. Thedescrambler 1804 only receivesthe PES packet and MPEG-2 section from thePID filter 1802 andperforms descrambling when necessary, according to theinstructions of theCPU 1206. PES packets and MPEG-2 sectionsthat are not scrambled are outputted directly from thePID filter1802 to theAV decoder 1805 andsection filter 1803, respectively.One or more of thedescrambler 1804 is found within theTS decoder1202.
Thesection filter 1803 extracts, from among the inputtedMPEG-2 sections, the MPEG-2 section matching the section filtercondition designated by theCPU 1206, and places it in theprimarystorage unit 1807 by DMA transfer. The MPEG-2 section held in theprimary storage unit 1807 is read and used by theCPU 1206. Forinstance, the case of the obtainment of an MPEG-2 section holdingthe tuning information in FIG. 11 is taken as an example. TheCPU1206 first sets thePID 16 on thePID filter 1802, then requests forthe obtainment of the section. The PID filter extracts the sectionfrom the TS packet having thePID 16, and provides this to thesection filter 1803. Next theCPU 1206 requests thesection filter 1803 to extract the section having a table_id of 64. Thesectionfilter 1803 extracts the section having the table_id of 64 fromamong the MPEG-2 sections inputted from thePID filter 1802, andperforms a DMA transfer of such extracted section, to theprimarystorage unit 1807. One or more of thesection filter 1803 is foundwithin theTS decoder 1202.
TheAV decoder 1805, corresponding to theAV decoder 1203,has a PES packet as input and outputs an AV signal to thedisplay/speaker 1806. The display/speaker 1806 corresponds tothedisplay 1205 andspeaker 1204. It has an AV signal as an inputand outputs video data to thedisplay 1205, and audio data to thespeaker 1204.
Theprimary storage unit 1807 corresponds to theprimarystorage unit 1208. It receives an MPEG-2 section, and enables thereferencing of such MPEG-2 section's contents, by the programexecuted by theCPU 1206.
The procedure for outputting video and audio data to adisplay and a speaker, respectively, is exemplified using therepresentation in FIG. 18. The broadcast signal inputted to thebroadcast receiving apparatus is first demodulated to an MPEG-2transport stream by thetuner 1801. Next, the PES packet,transmitted by the TS packet having the PID designated by theCPU1206, which contains video and audio information is extracted bythePID filter 1802. If necessary, the PES packet is transmitted tothedescrambler 1804 and descrambling is carried out. After this,the PES packet is inputted to theAV decoder 1805 where it isdecoded, and an AV signal is outputted. After this, the AV signal isinputted to the display andspeaker 1806, enabling the video andaudio reproduction.
The procedure for extracting data, such as programinformation, from a broadcast signal is exemplified using therepresentation in FIG. 18. The broadcast signal inputted to the broadcast receiving apparatus, is first demodulated to an MPEG-2transport stream by thetuner 1801. Next, the MPEG-2 section,transmitted by the TS packet having the PID designated by theCPU1206, which contains the data is extracted by thePID filter 1802. Ifnecessary, the MPEG-2 section is transmitted to thedescrambler1804 and descrambling is carried out. In addition, the MPEG-2sections are inputted to thesection filter 1803, and only the MPEG-2section that matches the section filter condition designated by theCPU 1206 is outputted. After this, the MPEG-2 section is inputtedto theprimary storage unit 1807, and provided to theCPU 1206.
Furthermore, in FIG. 18, as is in FIG. 12, a broadcastreceiving apparatus possessing its own display/speaker 1806 isconceptually rendered. However, there are types in which thedisplay/speaker 1806 is not contained within the broadcastreceiving apparatus, but found externally, instead. The presentinvention can be applied for either type. In addition, although inthe schematic diagram shown in FIG. 18, thedescrambler 1804 isfound within theTS decoder 1202, it can also be found outside a TSdecoder, depending on the hardware configuration. The presentinvention can still be applied, even in such a case.
Next, FIG. 19 shows a schematic diagram corresponding tothe hardware configuration where the tuner and AV decoder shownin FIG. 14, exist in a plurality. Aterminal apparatus 1900 includesatuner 1901a and atuner 1901b, aPID filter 1902, asection filter1803, adescrambler 1904, anAV decoder 1905a and anAV decoder1905b, a display/speaker 1906, and aprimary storage unit 1807.As the devices in FIG. 19 identified by the same numbering as in FIG.18 possess the same functions as in FIG. 18, their explanation shallbe omitted. The devices appearing in FIG. 19 have a one-to-one orone-to-many correspondence to the devices in FIG. 14. Two tuners,namely thetuner 1901a and thetuner 1901b, and two AV decoders,namely theAV decoder 1905a and theAV decoder 1905b, are found in FIG. 19. In FIG. 14, the input of a plurality of MPEG-2 transportstreams, as well as the output of a plurality of PES packets ispossible for theTS decoder 1402, and likewise, in FIG. 19, theestablishment of "information transfer paths", in flexiblecombinations, is possible between the plurality of tuners and theplurality of AV decoders. ThePID filter 1902 within theTS decoder1402 can extract a PES packet and an MPEG-2 section from theMPEG-2 transport streams inputted from either thetuner 1901a aswell as thetuner 1901b. In addition, it can also output a PESpacket to either one of theAV decoder 1905a and theAV decoder1905b. Likewise, thedescrambler 1904 can also output a PESpacket to either one of theAV decoder 1905a and theAV decoder1905b.
Next, FIG. 20 shows a schematic diagram corresponding tothe hardware configuration where the adapter is physicallyconnected, shown in FIG. 15. Aterminal apparatus 2000 includes atuner 2001, aPID filter 2002, asection filter 1803, anAV decoder1805, a display/speaker 1806, and aprimary storage unit 1807. Inaddition, anadapter 1511 is physically connected to theterminalapparatus 2000, and theadapter 1511 includes adescrambler 2004.As the devices identified with the same numbering as in the case ofFIG. 18, possess the same functions as in the case of FIG. 18, theirexplanation shall be omitted. It is different from the terminal inFIG. 18 as to the physical and logical connection point and functionof the descrambler. In FIG. 18, thedescrambler 1804 exists withintheTS decoder 1202, and performs descrambling on the PES packetand the MPEG-2 section outputted by thePID filter 1802, using thedescrambling key designated by theCPU 1206. In contrast, in FIG.20, thedescrambler 2004 is physically and logically connecteddirectly to thetuner 2001, and receives the MPEG-2 transportstream demodulated by thetuner 2001. Thedescrambler 2004extracts the TS packet bearing the PID designated by theCPU 1506, and performs descrambling by extracting, on its own, the keyrequired for descrambling, from within the MPEG-2 transport stream.The MPEG-2 transport stream that was descrambled by thedescrambler 2004 is inputted to the TS decoder, and from there,undergoes the same process flow as in FIG. 18. ThePID filter 2002can extract the TS packet from the MPEG-2 transport streaminputted from thedescrambler 2004, as well as form the PES packetand MPEG-2 section.
Next, FIG. 21 shows a schematic diagram for the case wherean adapter is physically connected to an apparatus in which aplurality of tuners and AV decoders exist, shown in FIG. 16. Aterminal apparatus 2100 includes atuner 2101a and atuner 2101b,aPID filter 2102, asection filter 1803, anAV decoder 1905a and1905b, a display/speaker 1906, and aprimary storage unit 1807.In addition, anadapter 1611 is physically connected to theterminalapparatus 2100, and theadapter 1611 includes adescrambler 2104.The devices, identified with the same numbering as in FIG. 18 andFIG. 19, possess the same functions as in FIG. 18 and FIG. 19, thustheir explanation shall be omitted. The point of difference with FIG.19 is the physical and logical connection point, and function, of thedescrambler 2104. With regard to the function of thedescrambler2104, except for the point of being able to receive and output aplurality of MPEG-2 transport streams, it is the same with that in thedescrambler 2004. Thetuner 2101a and thetuner 2101b inputsMPEG-2 transport streams to thedescrambler 2104. Thedescrambler 2104 inputs the descrambled MPEG-2 transportstreams to theTS decoder 1602. The PID filter can extract TSpackets from any one of the MPEG-2 transport streams inputtedfrom thedescrambler 2104, and form a PES packet and an MPEG-2section.
With regard to the hardware configuration having a POD,shown in FIG. 17, the process regarding the transmission of a signal through the In-Band frequency band is the same as in FIG. 20, thusexplanation shall be omitted.
Next, an explanation shall be made regarding the conceptualrelationship of the hardware and software discussed previously.FIG. 22 is a conceptual diagram indicating the relationship ofhardware and software.
As shown in FIG. 22, a terminal apparatus includeshardware2211 as a bottom layer, OCAP software (middleware) 2212 forexecuting OCAP commands 2214 which is an API, as a middle layer,and anOCAP application program 2213 for providing specificoperations using the OCAP commands 2214, and so on, as a toplayer.
Next, the procedure for program operation on a terminalapparatus shall be described. FIG. 23 shows an example of aconfiguration diagram of a program stored in theROM 1209, andexecuted by theCPU 1206.
Aprogram 2200 is made up of a plurality of subprograms,specifically, anOS 2201, anEPG 2202, aJava VM 2203, aservicemanager 2204, and aJava library 2205.
Here, theOS 2201, theJava VM 2203, and theJava library2205 are classified asOCAP software 2212 in FIG. 22. Furthermore,theEPG 2202, and theservice manager 2204 are classified as anOCAP application program 2213 in FIG. 22. Moreover, although theOS 2201, and so on, are classified asOCAP software 2212, these canalso be treated as a different layer.
TheOS 2201 is the subprogram initiated by theCPU 1206when the power source of theterminal apparatus 1200 is turned on.OS 2201 stands for Operating System, and examples of these areLinux, Windows, and so on. As theOS 2201, made up of akernel2201a and alibrary 2201b that are executed in parallel with othersubprograms, is a generic term for publicly known technology,explanation shall be omitted. In the present embodiment, thekernel 2201a of theOS 2201, executes theEPG 2202 and theJavaVM 2203 as subprograms. In addition, thelibrary 2201b providesthese subprograms with a plurality of functions for controlling thecomponents held by theterminal apparatus 1200.
The tuning function is introduced as an example of a function.The tuning function receives tuning information including frequencyfrom another subprogram, and forwards this to thetuner 1201.Thetuner 1201 performs demodulation based on the tuninginformation provided, and can forward the demodulated MPEG-2transport stream to theTS decoder 1202. As a result, anothersubprogram is able to control thetuner 1201 through thelibrary2201b.
EPG 2202 is made up of aprogram display unit 2202a fordisplaying a program list to, and accepting inputs from a user, and areproduction unit 2202b for performing channel selection. Here,EPG stands for Electric Program Guide. TheEPG 2202 is initiated bythekernel 2201a when the power source of theterminal apparatus1200 is turned on. Within the initiatedEPG 2202, theprogramdisplay unit 2202a awaits inputs from a user, through theinput unit1210 of theterminal apparatus 1200. At this point, in the casewhere theinput unit 1210 is made up of a front panel as shown inFIG. 13, when theEPG button 1307 of theinput unit 1210 is pressed,the identifier of the EPG button is relayed to theCPU 1206. Theprogram display unit 2202a of theEPG 2202 which is a subprogramoperating on theCPU 1206, receives such identifier and displaysprogram information onto thedisplay 1205. FIG. 24A and B showan example of a program list displayed on thedisplay 1205.Referring to FIG. 24A, program information is displayed in a gridpattern, on thedisplay 1205. In acolumn 2301, time information isdisplayed. In acolumn 2302, a channel name "channel 1", andprograms to be aired on the time slots corresponding to the time inthecolumn 2301 are displayed. In "channel 1", it is shown that at 9:00 to 10:30, a program "News 9" is to be aired, and at 13:30 to12:00, "Movie AAA" is to be aired. As in thecolumn 2302, in acolumn 2303, a channel name "channel 2", and programs to be airedon the time slots corresponding to the time in thecolumn 2301 aredisplayed. At 9:00 to 11:00, a program "Movie BBB" is to be aired,and at 11:00 to 12:00, "News 11" is to be aired. 2330 is a cursor.Thecursor 2330 moves when theleft cursor 1303 and therightcursor 1304 of thefront panel 1300 are pressed. In the state in FIG.24A, when theright cursor 1304 is pressed, thecursor 2330 movesto the right as shown in FIG. 24B. Furthermore, in the state in FIG.24B, when theleft cursor 1303 is pressed, thecursor 2330 moves tothe left as shown in FIG. 24A.
In the state in FIG. 24A, when theOK button 1305 of thefrontpanel 1300 is pressed, theprogram display unit 2202a relays theidentifier for "channel 1" to thereproduction unit 2202b. In thestate in FIG. 24B, when theOK button 1305 of thefront panel 1300is pressed, theprogram display unit 2202a relays the identifier for"channel 2" to thereproduction unit 2202b.
In addition, theprogram display unit 2202a periodicallypre-stores program information to be displayed from the broadcaststation-side system 201 into theprimary storage unit 1208 or thesecondary storage unit 1207. In general, obtaining programinformation from a broadcast station-side system takes time. Aprogram list can be displayed rapidly by displaying the programinformation pre-stored in theprimary storage unit 1208 or thesecondary storage unit 1207 when theEPG button 1307 of theinputunit 1210 is pressed.
Thereproduction unit 2202b reproduces a channel using thechannel identifier received. The relation between the channel andthe identifier is stored, in advance, in thesecondary storage unit1207, as channel information. FIG. 25 is an example of channelinformation stored in thesecondary storage unit 1207. Channel information is stored in tabular-form. Acolumn 2401 showschannel identifiers. Acolumn 2402 shows channel names. Acolumn 2403 shows tuning information. Here, tuning informationincludes frequency, transmission rate, encoding rate, and so on,which are values provided to thetuner 1201. Acolumn 2404 showsprogram numbers. A program number is a number for identifying aPMT prescribed in the MPEG-2 standard. An explanation regardingPMT shall be made later. Each row inrows 2411 to 2414 forms theset for each channel's identifier, channel name, tuning information,and program number. Therow 2411 is the set which includes anidentifier "1", a channel name "channel 1", tuning information as thefrequency "150 MHz", and a program number "101". In order toreproduce a channel, thereproduction unit 2202b forwards thechannel identifier received, as it is, to the service manager.
Furthermore, when a user presses the upcursor 1301 anddowncursor 1302 on thefront panel 1300 during reproduction, thereproduction unit 2202b receives the pressed notification from theinput unit 1210 through theCPU 1206, and switches the channelbeing reproduced. First, thereproduction unit 2202b stores theidentifier of the channel currently being reproduced, into theprimary storage unit 1208. FIG. 26A, B, and C, are examples ofchannel identifiers stored in theprimary storage unit 1208. In FIG.26A, an identifier "3" is stored, indicating, with reference to FIG. 25,that the channel having a channel name "TV 3" is currently beingreproduced. In the state in FIG. 26A, when a user presses the upcursor 1301, thereproduction unit 2202b refers to the channelinformation in FIG. 25, and in order to switch the reproduction to theprevious channel on the list having the channel name "channel 2", itforwards the identifier "2" of the channel name "channel 2", to theservice manager. At the same time, it rewrites "2" as the channelidentifier stored in theprimary storage unit 1208. FIG. 26B showsthe state after the channel identifier is rewritten. In addition, in the state in FIG. 26A, when a user presses thedown cursor 1302,thereproduction unit 2202b refers to the channel information in FIG.25, and in order to switch the reproduction to the next channel onthe list having the channel name "TV Japan", it forwards theidentifier "4" of the channel name "TV Japan", to the servicemanager. At the same time, it rewrites "4" as the channel identifierstored in theprimary storage unit 1208. FIG. 26C shows the stateafter the channel identifier is overwritten.
TheJava VM 2203 is a Java virtual machine for sequentiallyanalyzing and performing a program written in the Java (TM)language. A program written in the Java language is compiled intoan intermediate code, referred to as a bytecode, which is notdependent on hardware. The Java virtual machine is an interpreterfor executing such bytecode. In addition, some Java virtualmachines forward a bytecode to theCPU 1206 after translating it toan execution format understandable to theCPU 1206, and executionis also carried out.Java VM 2203 is initiated by the designation ofa Java program to be executed bykernel 2201a. In the presentembodiment, thekernel 2201a designates the service manager asthe Java program to execute. The details of the Java language areexplained in many publications, such as "Java LanguageSpecification (ISBN 0-201-63451-1)" and so on. Here, such detailsshall be omitted. In addition, the detailed operation, and so on, ofthe Java VM itself are explained in many publications, such as "JavaVirtual Machine Specification (ISBN 0-201-63451-X)", and so on.Here, such details shall be omitted.
Theservice manager 2204 is a program written in the Javalanguage, and is sequentially executed by theJava VM 1203.Through a Java Native Interface (JNI), it is possible for theservicemanager 2204 to call, or be called, by another program that is notwritten in the Java language. Likewise, with regard to JNI,explanations are provided in many publications, such as "Java Native Interface", and so on. Here, such details shall be omitted.
Theservice manager 2204 receives a channel identifier fromthereproduction unit 2202b, by way of a JNI.
Theservice manager 2204, first forwards the channelidentifier to atuner 2205c located within theJava library 2205, andrequests for tuning. Thetuner 2205c refers to the channelinformation stored in thesecondary storage unit 1207, and obtainstuning information. Now, when theservice manager 2204 forwardsa channel identifier "2" to thetuner 2205c, thetuner 2205c refers totherow 2412 in FIG. 25, and obtains the corresponding tuninginformation which is "156 MHz". Thetuner 2205c forwards thetuning information to thetuner 1201 through thelibrary 2201b oftheOS 2201. Thetuner 1201 demodulates a signal transmittedfrom the broadcast station-side system 201 according to the tuninginformation provided, and forwards this to theTS decoder 1202.
Next, theservice manager 2204 makes a request to aCA2205d located within theJava library 2205 for descrambling. TheCA 2205d provides information required for decoding to thedescrambler 1804 within theTS decoder 1202, through thelibrary2201b of theOS 2201.
Next, theservice manager 2204 provides the channelidentifier to aJMF 2205a located within theJava library 2205, andrequests video and audio reproduction.
First, theJMF 2205a obtains the PID for identifying the videoand audio to be reproduced, from a PAT and a PMT. The PAT, PMT,and so on, are tables prescribed in the MPEG-2 standard, whichdescribe the program structure within an MPEG transport stream.They are embedded, as an MPEG-2 section, in the payload of a TSpacket included in an MPEG-2 transport stream, and are transmittedalongside video and audio data. Refer to the Specifications fordetails. Here, only the outline shall be explained. PAT stands forProgram Association Table, and is the MPEG-2 section having a table_id of "0" stored and transmitted in the TS packet having thePID "0". In order to obtain the PAT, theJMF 2205a specifies the PID"0" and theCPU 1206, to theTS decoder 1202, through thelibrary2201b of theOS 2201. TheTS decoder 1202 performs filtering withthe PID "0" and the table_id "0", and by forwarding results to theCPU 1206, through theprimary storage unit 1208, theJMF 2205aacquires the PAT. FIG. 27 is a chart showing, schematically, anexample of the information of the acquired PAT. Acolumn 2601shows the program number. Acolumn 2602 shows the PID. ThePID in thecolumn 2602 is used for obtaining the PMT.Rows 2611 to2613 are sets of channel program numbers and corresponding PIDs.Here, three channels are defined. In therow 2611, the set of aprogram number "101" and a PID "501" are defined. Now,assuming that "2" is the channel identifier provided to theJMF2205a, theJMF 2205a refers to therow 2412 in FIG. 25, and obtainsthe corresponding program number which is "102". Next, it refersto therow 2612 of the PAT in FIG. 27, and obtains the PID "502"which corresponds to the program number "102". PMT stands forProgram Map Table, and is the MPEG-2 section bearing the table_id"2", stored and transmitted in the TS packet having the PIDidentified by the PAT. In order to obtain a PMT, theJMF 2205aspecifies the PID obtained from the PAT and the table_id "2" to theTS decoder 1202, through thelibrary 2201b of theOS 2201. At thispoint, it is assumed that the specified PID is "502". TheTS decoder1202 performs filtering with the PID "502" and the table_id "2", andby forwarding results to theCPU 1206, through theprimary storageunit 1208, theJMF 2205a acquires the PMT. FIG. 28 is a chartshowing, schematically, an example of the information of theacquired PMT. Acolumn 2701 shows the stream type. Acolumn2702 shows the PID. The information designated by the streamtype is stored and transmitted in the payload of the TS packet havingthe PID designated by thecolumn 2702. Acolumn 2703 shows supplementary information. Therows 2711 to 2714 are the sets,known as elementary streams, of the PID and the type of theinformation being transmitted. Therow 2711 is the set consistingof a stream type as "audio" and a PID "5011", indicating that audiodata is stored in the payload of the TS packet having the PID "5011".TheJMF 2205a obtains the PID of the video and audio to bereproduced from the PMT. Referring to FIG. 28,JMF 2205a obtainsthe audio PID "5011" from therow 2711, and the video PID "5012"from therow 1712.
Next, theJMF 2205a specifies the obtained video/audio PID,and theAV decoder 1203 as the destination, to theTS decoder 1202,through thelibrary 2201b of theOS 2201. TheTS decoder 1202performs filtering based on the PID and output destination provided.Here the TS Packets of PID "5011" and "5012" are forwarded to theAV decoder 1203. TheAV decoder 1203 decodes the PES packetsprovided, and reproduces the video/audio through thedisplay 1205and thespeaker 1204.
Finally, theservice manager 2204 relays the channelidentifier to theAM 2205b located within theJava library 2205, andrequests data broadcast reproduction. Here, data broadcastreproduction refers to the extraction of a Java program included inan MPEG-2 transport stream, and the execution of such Javaprogram by theJava VM 2203. A format, known as DSMCC,described in the MPEG Specification ISO/IEC 13818-6 is used as themethod for embedding a Java program in an MPEG-2 transportstream. Here, the detailed explanation for DSMCC shall be omitted.The DSMCC format prescribes a method for encoding a file systemusing an MPEG-2 section. Such file system is found within the TSpacket of an MPEG-2 transport stream, and is made up of a directory,a file, and so on, to be used in a computer. In addition, theinformation of the Java program to be executed is the format knownas AIT. It is embedded in the TS packet of an MPEG-2 transport stream, and is transmitted as the MPEG-2 section having a table_idof "0 x 74". The AIT stands for Application Information Table, and isdefined inchapter 10 of the DVB-MHP Specification (formally,ETSITS 101 812 DVB-MHP specification V1.0.2).
In order to obtain the AIT, theAM 2205b first obtains the PATand PMT in the same manner as theJMF 2205a, and acquires the PIDof the TS packet where the AIT is stored. Now, when the identifierof the channel provided is "2", and the PAT in FIG. 27 and the PMT inFIG. 28 is being transmitted, the PMT in FIG. 28 is obtained, in thesame procedure as with theJMF 2205a. TheAM 2205b extracts thePID from the elementary stream having "data" as stream type and"AIT" as supplementary information, from the PMT. Referring toFIG. 28, the elementary stream ofrow 2713 falls under thisdescription, thus the PID "5013" is acquired.
TheAM 2205b provides the PID of the AIT and the table_id "0x 74" to theTS decoder 1202, through thelibrary 2201b of theOS2201. TheTS decoder 1202 performs filtering with the PID andtable_id provided, and forwards the result to theCPU 1206, throughtheprimary storage unit 1208. As a result, theAM 2205b is able toacquire the AIT. FIG. 29 is a chart showing, schematically, anexample of information of the acquired AIT. Acolumn 2801 showsthe Java program identifiers. Acolumn 2802 shows Java programcontrol information. "Autostart", "present", "kill", and so on, arefound in the control information. "Autostart" means that theterminal 1200 automatically executes this program immediately,"present" means that an automatic execution is not performed, and"Kill" means the termination of a program. Acolumn 2803 showsthe DSMCC identifiers for extracting the PID which includes the Javaprogram, in the DSMCC format. Acolumn 2804 shows the programnames of the Java program.Rows 2811 to 2812 show sets of Javaprogram information. A Java program defined in therow 2811 isthe set with an identifier "301", control information "autostart", a DSMCC identifier "1", and a program name "a/TopXlet". A Javaprogram defined by therow 2812 is the set with an identifier "302",control information "present", a DSMCC identifier "1", and a programname "b/GameXlet". Here, two Java programs have the sameDSMCC identifier. This indicates that two Java programs areincluded within a file system encoded in a single DSMCC format.Here, although only four items of information are prescribed for theJava programs, in actuality, more items of information are defined.Refer to the DVB-MHP Specification for details.
TheAM 2205b finds the Java program of "autostart" withinthe AIT, and extracts the corresponding DSMCC identifier andprogram name. Referring to FIG. 29, theAM 2205b extracts theJava program of therow 2811, and acquires the DSMCC identifier "I"and the Java program name "a/TopXlet".
Next, theAM 2205b acquires the PID of the TS packet storinga file system in a DSMCC format, from the PMT, using the DSMCCidentifier obtained from the AIT. To be specific, the PID of anelementary stream, within the PMT, with a stream type as "data",and supplementary information of a matching DSMCC identifier, isacquired.
Now, assuming that the DSMCC identifier is "1", and the PMTis the one shown in FIG. 28, the elementary stream of therow 2714conforms, and a PID "5014" is obtained.
TheAM 2205b specifies, to theTS decoder 1202, the PID ofthe TS packet transmitting the MPEG-2 section where data isembedded in the DSMCC format, as well as the section filtercondition, through thelibrary 2201b of theOS 2201. Here, PID"5014" is provided. TheTS decoder 1202 performs filtering withthe MPEG-2 section for the DSMCC using the PID provided, andforwards the result to theCPU 1206 through theprimary storageunit 1 208. As a result, theAM 2205b is able to acquire thenecessary MPEG-2 section for the DSMCC. TheAM 2205b restores the file system from the acquired MPEG-2 section, according to theDSMCC format, and stores it in theprimary storage unit 1208. Theobtainment of data such as a file system from a TS packet within anMPEG-2 transport stream, for storage in a means for storage such astheprimary storage unit 1208 and thesecondary storage unit 1207shall be referred to, hereinafter, as a download.
FIG. 30 shows an example of a downloaded file system. Inthe illustration, a circle indicates a directory and a square indicatesa file. 2901 is a route directory, 2902 is a directory "a", 2903 is adirectory "b", 2904 is a file "TopXlet.class", and 2905 is a file"GameXlet.class".
Next, theAM 2205b forwards the Java program to beexecuted from within the file system downloaded in theprimarystorage unit 1208, to theJava VM 2203. Assuming that "a/TopXlet"is the Java program name to be executed now, the file adding".class" at the end of the program name, namely "a/TopXlet.class"becomes the file to be executed. " / " is a delimiter for a directory,a file name, and the like, and referring to FIG. 30, thefile 2904 isthe Java program to be executed. Next, theAM 2205b forwards thefile 2904 to theJava VM 2203.
Moreover, AIT is not the only method of reference for the Javaprogram to be executed by theAM 2205b. In OCAP which is beingconsidered for use in the American cable system, XAIT which liststhe reference information of applications in the OOB shown in FIG. 3,is used. Aside from this, other methods such as one where aprogram recorded, in advance, in theROM 1209 is initiated, onewhere a program downloaded and stored in thesecondary storageunit 1207 is initiated, and so on, are also assumed.
The Java VM2203 executes the forwarded Java program.
Upon receiving the identifier of another channel, theservicemanager 2204 terminates the execution of the video/audio beingreproduced through each of the libraries included in theJava library 2205, through the same libraries included in theJava library 2205,and executes the video/audio reproduction, as well as the Javaprogram, based on the newly received channel identifier.
TheJava library 2205 is the aggregate of the plurality of Javalibraries stored in theROM 1209. In the present embodiment, theJava library 2205 includes theJMF 2205a, theAM 2205b, thetuner2205c, theCA 2205d, asection filter 2205e, adevice manager 2205fwhich is a device management unit, and so on.
Next, explanation shall be made regarding thedevicemanager 2205f, which is the basis of the present invention.
A program described in the Java language and initiated in thepreviously mentioned manner is able to implement a variety offunctions. The Java program implements such functions by usingtheJava library 2205. Included within theJava library 2205 is thedevice manager 2205f which performs management with regard tothe devices located inside the digital broadcast receiving apparatus.Thedevice manager 2205f has a function for logically connecting aplurality of devices, as well as a function for providing informationrelated to such connection function.
As shown in the hardware configuration examples illustratedin FIG. 12 to FIG. 17, as well as i n the corresponding deviceconfigurations and input/output of each device illustrated in FIG. 18to FIG. 21, the type of hardware used during the process ofextracting required information from a digital broadcast signal issomewhat limited, regardless of the hardware configuration. In thepresent embodiment, the "tuner", "PID filter", "section filter","descrambler", and the "AV decoder" are perceived as the devicesused in the processing of a broadcast signal, and the Java programis provided with the function for controlling such devices. FIG. 12illustrates such a hardware configuration, and the number of eachdevice in the present embodiment shall be in conformance with thatin FIG. 12. TheAV decoder 1203 has the function for simultaneously decoding video and audio data, and cansimultaneously receive a PES packet transmitting video data, and aPES packet transmitting audio data. Assume that there are an Xnumber of PID folders found within theTS decoder 1202, a Y numberof section filters, and a Z number of descramblers. In the casewhere devices of the same type exist in a plurality, as long as theyare all physically connected according to the sequence depicted inFIG. 18, it is assumed that the logical connection of any device isalso possible. In other words, all the PID filters can be logicallyconnected to the tuner, all the descramblers can be logicallyconnected to all the PID filters, all the section filters can be logicallyconnected to all the PID filters and all the descramblers, and the AVdecoder can be logically connected to all the PID filters and all thedescramblers. FIG. 31 shows the logical connection paths possibleunder this situation. FIG. 31A shows a device logical connectionpath used during video and audio reproduction. It is used duringthe reproduction of video and audio data transmitted by a PESpacket which has not undergone scrambling. FIG. 31B shows adevice logical connection path used during video and audioreproduction. It is used during the reproduction of video and audiodata transmitted by a PES packet which has undergone scrambling.FIG. 31C shows a device logical connection path used during theaccess of data transmitted by an MPEG-2 section. It is used in thecase of accessing data transmitted by an MPEG-2 section which hasnot undergone scrambling. FIG. 31D shows a device logicalconnection path used during the access of data transmitted by anMPEG-2 section. It is used in the case of accessing datatransmitted by an MPEG-2 section which has undergone scrambling.The Java program can access a broadcast signal using any of thefour paths shown in FIG. 31. FIG. 32 shows an overall conceptualdiagram of logical connections in the present embodiment. As thehardware configuration in the present embodiment follows that in FIG. 12, thetuner 1801 and theAV decoder 1805, each existingsingly, and thePID filter 1802, thesection filter 1803, and thedescrambler 1804, existing in a plurality, are logically connected toeach other in abidance to sequence.
The Java program can format a device logical connection pathby accessing thedevice manager 2205f. In the presentembodiment, thedevice manager 2205f adopts a configuration asshown in FIG. 33. Thedevice manager 2205f is made up of the sixmodules, namely a device basicinformation management unit 3201,a deviceobject management unit 3202, a device physicalconnectionmanagement unit 3203, a device logicalconnection unitmanagement 3204, a devicelogical connection unit 3205, and adevice logicalconnection cancellation unit 3206.
The device basicinformation management unit 3201 holdsinformation on the type and number of the devices handled by thedevice manager 2205f, as well as information regarding theindividual devices. The device basicinformation management unit3201 holds information in theprimary storage unit 1208, or thesecondary storage unit 1207, or theROM 1209, and is managed bythedevice manager 2205f. In addition, it can also be managedthrough dedicated hardware such as a register, and the like.
The deviceobject management unit 3202 manages theone-to-one correspondence of objects which represent devices.The deviceobject management unit 3202 stores information withintheprimary storage unit 1208, and is managed by thedevicemanager 2205f. In addition, it can also be managed throughdedicated hardware such as a register, and the like.
The device physicalconnection management unit 3203manages the physical connection information of devices in terms ofhardware configuration. It manages such information as, in FIG.18 for example, thetuner 1801 being physically connected to thePID filter 1802, and thePID filter 1802 being connected to thetuner 1801, and thesection filter 1803, and thedescrambler 1804, andtheAV decoder 1805. The device physicalconnection managementunit 3203 basically holds information in theprimary storage unit1208, or thesecondary storage unit 1207, or theROM 1209, and ismanaged by thedevice manager 2205f. In addition, as analternative implementation, it is possible to adopt animplementation where the status of the device itself is used as thephysical connection management unit, and the physical connectionconfiguration of devices in terms of hardware itself, is checked whenthe obtainment of the physical connection status is necessary.Furthermore, it can also be managed through dedicated hardwaresuch as a register, and the like.
The device logicalconnection management unit 3204manages the logical connection status of devices. The devicelogicalconnection unit management 3204 basically holdsinformation within theprimary storage unit 1208, and is managedby thedevice manager 2205f. However, as an alternateimplementation, it is possible to adopt an implementation where thestatus of the device itself, is used as the logical connectionmanagement unit, and the device itself is checked, when theobtainment of the connection status is required. In addition, it canalso be managed through dedicated hardware such as a register, andthe like.
The devicelogical connection unit 3205 has a function forlogically connecting devices. The devicelogical connection unit3205 is implemented as a library for performing the connection ofdevices. It is stored in theROM 1209, and executed by theCPU1206.
The device logicalconnection cancellation unit 3206 has afunction for performing the cancellation of a logical connection ofdevices. The device logicalconnection cancellation unit 3206 isimplemented as a library for performing the cancellation of device logical connections. It is stored in theROM 1209, and executed bytheCPU 1206.
Next, the functions necessary for thedevice manager 2205fshall be enumerated, and the procedures for implementation withregard to each function shall be shown while indicating theassociation with each of theunits 3201 to 3206 in FIG. 33.
The first function of thedevice manager 2205f is providingthe Java program with the function for obtaining the type of thedevice (hereinafter as device type) being managed by thedevicemanager 2205f. In the present embodiment, as the "tuner", "PIDfilter", "section filter", "descrambler", and "AV decoder" are beinghandled as mentioned earlier, the function for obtaining the types ofthese devices are provided to the Java program. By using thepresent function, the Java program can obtain the device type of thedevices that are possible for it to logically connect. FIG. 34 is aflowchart showing the procedure for implementing the presentfunction. First, upon receiving a device type obtainment requestfrom the Java program (S3301), thedevice manager 2205f obtainsall the device types managed by the device basicinformationmanagement unit 3201 by inquiring to the device basic informationmanagement unit 3201 (S3302), and returns this to the Javaprogram (S3303).
The second function of thedevice manager 2205f is providingthe Java program with the function for returning the number of thedevices being managed by thedevice manager 2205f. With regardto the present embodiment, as only one of thetuner 1801 exists interms of hardware, one is returned. As for the PID filter, since an Xnumber exist, X is returned. By using the present function, theJava program is able to obtain the number of devices existing, interms of hardware configuration, for each device type. FIG. 35 is aflowchart showing the procedure for implementing the presentfunction. Upon receiving a designation of device types and a device number obtainment request from the Java program (S3401), thedevice manager 2205f obtains the number of the devices matchingthe designated device type by inquiring to the device basicinformation management unit 3201 (S3402), and returns theobtained number of devices (S3403). Moreover, it is also possibleto have an implementation where the designation of device types isnot received in the step 3401, and the number of all devices found inthe broadcast receiving apparatus is returned.
The third function of thedevice manager 2205f is to providethe function for returning Java objects (hereinafter as device objects(device identifiers)) having a one-to-one correspondence with thedevices managed by thedevice manager 2205f. As the only tunerin the present embodiment is thesingle tuner 1801 in FIG. 18, theobject having a one-to-one correspondence with thetuner 1801 isreturned for the "device object obtainment request" having a devicetype as "tuner". In addition, since a Y number exist for the sectionfilter in the present embodiment, as previously mentioned, a Ynumber of objects corresponding on a one-to-one basis with therespective section filters is returned, for the "device objectobtainment request" with the device type as "section filter". As theobject returned by the present function corresponds to a particulardevice, the object can be used as the identifier for the device duringthe execution of the Java program. For example, in the case wherea tuner and a PID filter are to be logically connected, the logicalconnection procedure for the device object representing thetuner1801 and the device object representing one of the X number ofPIDfilters 1802 on a one-to-one basis, is in itself interpreted as logicallyconnecting thetuner 1801 and the "PID filter among the X numberofPID filters 1802, corresponding to the device object on aone-to-one basis". Using the present function, the Java program isable to obtain identifiers for the devices existing in the hardwareconfiguration. FIG. 36 is a flowchart showing the procedures for implementing the present function. First, a device typedesignation and an "all device object obtainment request" isreceived from the Java program (S3501). Thedevice manager2205f then obtains all the device objects corresponding to thedevices having the designated device type by inquiring to the deviceobject management unit 3202 (S3502). After this, it returns all theobtained device objects to the Java program (S3503).
As the fourth function of thedevice manager 2205f, thedevice manager 2205f provides the Java program with a devicelogical connectability obtainment function for obtaining a judgmentresult as to whether or not a logical connection is possible (logicalconnectability) between devices managed by thedevice manager2205f. For example, in the present embodiment, as the sectionfilter and the AV decoder are not physically connected, as can beseen in FIG. 18, a logical connection is not possible. In suchmanner, the function for obtaining whether the connection accordingto the device designation, itself, is possible or not is realized. Usingthe present function, the Java program is able to recognize thepossibility of logical connections between devices. FIG. 37 showsthe procedure for implementing the present function. First, uponreceiving the designation of the device objects corresponding to thetwo devices for which the logical connectability is to be evaluated,and a "logical connectability obtainment request for the devices",from the Java program (S3601), thedevice manager 2205f obtainsthe devices corresponding to the two designated device objects byinquiring to the device object management unit 3202 (S3602).Next, it obtains the physical connection status with regard to thetwo devices by inquiring to the device physical connectionmanagement unit 3203 (S3603). It then judges the physicalconnection obtained (S3604), and returns "possible" if the devicesare directly, physically connected (S3605), or "not possible" if theyare not directly, physically connected (S3606). If there is no physical connection, nothing further is done.
The fifth function of thedevice manager 2205f is providingthe Java program with the function for obtaining the logicalconnection status of the devices managed by thedevice manager2205f. For example, in the case where a certain section filter islogically connected to a PID filter, logically connecting such sectionfilter to another PID filter is not desirable as the device configurationwithin the device logical connection path is altered, affecting theoperational results of devices. Using the present function, the Javaprogram is able to obtain the device status, as to whether they arelogically connected or not. FIG. 38 shows the procedures forimplementing the present function. Upon receiving the designationfor the device objects corresponding to the two devices for whichstatus of the logical connection is to be evaluated, and a "devicelogical connection status obtainment request" from the Javaprogram (S3701), thedevice manager 2205f obtains the devicescorresponding to the two device objects by inquiring to the deviceobject management unit 3203 (S3702). Next, it obtains the statusof the logical connection of the two devices by inquiring to the devicelogical connection management unit 3204 (S3703), and returns theresult to the Java program (S3704).
The sixth function of thedevice manager 2205f is to providethe Java program with the function for performing logicalconnections between devices managed by thedevice manager 2205f.It logically connects devices in the case where devices that can belogically connected are designated. Using the present function, theJava program carries out logical connection of devices. FIG. 39shows the procedure for implementing the present function. Uponreceiving the designation for the device objects corresponding to thetwo devices for which the logical connection is desired, and a "devicelogical connection request" from the Java program (S3801), thedevice manager 2205f obtains the devices corresponding to the two designated device objects by inquiring to the device objectmanagement unit 3202 (S3802). Next, it obtains the physicalconnection status of the two devices by inquiring to the devicephysical connection management unit 3203 (S3803), and judges thepossibility of a logical connection (S3804). If the logical connectionis possible, it obtains the logical connection status of the twodevices by inquiring to the device logical connection managementunit 3204 (S3805), and performs judgment (S3806). If there is nological connection between the two devices, and one of the devicesis not logically connected to another device which is of the samedevice type as the other device, the two devices are logicallyconnected using the device logical connection unit 3205 (S3807),and the connection of the two devices is recorded onto the devicelogical connection management unit 2304 (S3808). To describe thejudgment in S3806 in more detail, first in the case where "a logicalconnection between the two devices already exists", as there is nopoint in connecting again, nothing is done. In addition, if "one ofthe two devices is connected to another device which is of the sametype as the other device", forcing a logical connection would breakexisting device logical connection paths. For example, when thePID filter A and the section filter A are specified, an evaluation of thelogical connection status is performed. In the case where the PIDfilter A is already connected to a section filter B, nothing is done.However, if the PID filter A is in a logically connected status with thetuner A but is not logically connected to other section filters, as it isnot "of the same device type", the device logical path would not bebroken, and the connection is carried out.
The seventh function of thedevice manager 2205f is toprovide the Java program with the function for canceling a logicalconnection between devices managed by thedevice manager 2205f.Using the present function, the Java program performs thecancellation of logical connections of devices. FIG. 40 shows the procedures for implementing the present function. Upon receivingthe designation for the device objects corresponding to the twodevices for which the cancellation of the logical connection is desired,and a "device logical connection cancellation request", from the Javaprogram (S3901), thedevice manager 2205f obtains the devicescorresponding with the two designated device objects by inquiringto the device object management unit 3202 (S3902). Next, itobtains the logical connection status of the two devices by inquiringto the device logical connection management unit 3204 (S3903),and performs judgment (S3904). If they are logically connected,the connection of two devices is cancelled using the device logicalconnection cancellation unit 3206 (S3905), and the cancellation ofthe connection of the two devices is recorded onto the device logicalconnection management unit 3204 (S3906). If they are notlogically connected, nothing is done.
FIG. 41 shows an example of the procedure for theperformance of a logical connection of devices by the Java program.The flowchart in FIG. 41 lists the procedure used during theextraction of data from a broadcast signal using three section filters.In the present embodiment, it is presumed that the Java programpreviously possesses the knowledge regarding the devices requiredduring the use of the section filters, as well as the connectionsequences of such devices. First, the types of the devices areobtained (S4001). Next, the obtained device types are checked ofwhether they cover a tuner, PID filter, or section filter (S4002). Ifthe required device types are all handled by thedevice manager2205f, the number of devices found for each device type of thedevices is obtained (S4003). Judgment is made (S4004) as towhether the number of devices actually existing is larger than thenumber of devices to be used (for this example, whether there areone or more tuners, three or more PID filters, and three or moresection filters), and in the case where the number is larger, device objects for each device type are obtained (S4005). Next, thepossibility of logical connection between the device objects isobtained (S4006), and an evaluation is made as to whether logicalconnection is mutually possible (S4007). To be specific, the logicalconnectability of the tuner and each PID filter, as well as the logicalconnectability of each PID filter and each section filter is evaluated.If all devices can be logically connected, the logical connectionstatus of each device is then obtained (S4008). If a devices in anunconnected state are found (S4009), each device is logicallyconnected (S4010). By carrying out this procedure, the Javaprogram is able to logically connect devices to each other, andsubsequently, by using "an operation library for each individualdevice" such as thetuner 2205a found in theJava library 2205, therealization of a desired function is made possible. In the casewhere conditions are not met in the judgment procedure S4002, thejudgment procedure S4004, the judgment procedure S4007, andthe judgment procedure S4009, the logical connection of devices, asis, is not possible. In the case where conditions are not met in thejudgment procedure S4007 and the judgment procedure S4009, ifthere is an excess available in the device objects obtained in S4005,it is possible to try with such excess device objects. In addition, inthe case where the condition is not met in the judgment procedureS4009, it is possible to cancel an existing logical connection betweenthe devices, using the device logical connection cancellationfunction which is the seventh function of thedevice manager 2205f,and try again.
Furthermore, in the present embodiment, the deletion of theROM 1209 can be carried out by storing the contents stored in theROM 1209 in thesecondary storage unit 1207. In addition, thesecondary storage unit 1207 is made up of a plurality ofsub-secondary storage units, and the storage of differentinformation in individual sub-secondary storage units can be carried out. For example, it is possible to have detailed partitions such asstoring only tuning information in one sub-secondary storage unit,storing thelibrary 2201b of theOS 2201 in another sub-secondarystorage unit, and storing the downloaded Java program in yetanother sub-secondary storage unit, and so on.
In addition, although in the present embodiment thedownloaded Java program is stored in thesecondary storage unit1207, storage in theprimary storage unit 1208 can also be carriedout. In the case of storage in theprimary storage unit 1208, whenthe power source is turned OFF, all information stored shall be lost.
Furthermore, although explanation is made exemplifying thebroadcast receiving apparatus as an information processingapparatus, aside from this, the present invention can also be appliedeven for information processing apparatuses such as a personalcomputer, a mobile telephone, or the like. In addition, the presentinvention is likewise naturally applicable for information processingapparatuses for performing data processing (for example, recording,playback, and so on) within recording media for recordinginformation, such as a CD, a DVD, a BD (Blue-ray Disc), a DVHS, anda memory, even if broadcast receiving is not possible.
(Second Embodiment)The hardware configuration of the first embodiment conformsto that in FIG. 12, and assumes that thedescrambler 1804 is locatedinside theTS decoder 1202. However, the physical connectionsequence of devices handled by thedevice manager 2205f is notalways constant. The hardware configuration of the presentembodiment conforms to that in FIG. 15. In the hardwareconfiguration shown in FIG. 15, as shown in the corresponding FIG.20, the descrambler is not found inside theTS decoder 1502, andthedescrambler 2004 is found inside theadapter 1511. In thepresent configuration, the sequence of physical connections is different to those in the first embodiment. Even in such cases, thedevice physicalconnection management unit 3203 managesinformation regarding the physical connection sequence of devices.During the obtainment of the connectability for devices, thedevicemanager 2205f, in the same manner as in FIG. 37, obtains thedevice connection sequence by inquiring to the device physicalconnection management unit 3203, and a judgment considering theobtained result is made possible. By performing suchimplementation, the present invention can be applied to anyhardware configuration without dependence on the physicalconnection sequence of devices.
(Third Embodiment)The hardware configuration of the first embodiment conformsto that in FIG. 12, and thedevice manager 2205f handles as devices,the "tuner", "PID filter", "section filter", "descrambler", and "AVdecoder". However, in FIG. 12, other devices such as the "display"and the "speaker" also exist. In addition, devices other than thosefound in FIG. 12 and FIG. 18 can also exist. For example, asidefrom the devices found in FIG. 18, a case where a "switch" device foroutputting an inputted MPEG-2 transport stream to another devicethat is physically connected to theTS decoder 1202, is located in theTS decoder 1202 found in FIG. 12. In addition, it is also possible tohave a device which deletes unnecessary information from aninputted MPEG-2 transport stream according to the specification oftheCPU 1206, and passes sectional TS known as a "partial TS" toother devices that are physically connected to theTS decoder 1202.In HDD recorders possessing an HDD (Hard Disk Drive), there existsa device where the HDD has an MPEG-2 transport stream as an input,and with regard to DVD recorders, there exists a device where a"DVD media control apparatus" has an MPEG-2 program stream asan input. In this manner, aside from the devices covered in the first embodiment, a variety of devices exist inside the broadcastreceiving apparatus.
For example, a hardware configuration as that shown in FIG.42 is also possible. In this hardware configuration, anHDD 1221 towhich an MPEG-2 transport stream is inputted, and anexternaloutput unit 1222 for outputting an MPEG-2 transport stream to anetwork, and so on, are included in addition to the configuration inFIG. 12
Thedevice manager 2205f in the present embodiment canhandle even information regarding such variety of devices. For thispurpose, it is sufficient for each unit of thedevice manager 2205f tomanage the information to the effect that such variety of devices areto be handled as devices. To be specific, in the device basicinformation management unit 3201, the information on individualdevices managed is increased, and in the deviceobject managementunit 3202, the sets of devices and device objects managed isincreased, the physical connection information managed by thedevice physicalconnection management unit 3203 is increased, thedevice logicalconnection management unit 3204 manages thelogical connection information regarding the devices added, and thedevicelogical connection unit 3205 as well as the device logicalconnection cancellation unit 3206 are modified to handle the devicesadded. In the case where a module is further added within thedevice manager in the other embodiments, the present inventioncan still be applied by enabling the management of information forthe devices added.
In this manner, the handling of other devices is readily madepossible in the present invention, without changing the fundamentalstructural relationships of each unit within thedevice manager2205f, or the implementation sequence of each function of thedevice manager 2205f.
(Fourth Embodiment)In the first embodiment, the "tuner", "PID filter", "sectionfilter", "descrambler", and "AV decoder" are cited as the devicesmanaged by thedevice manager 2205f. However, there are caseswhere a device not particularly requiring connection or a device forwhich implied management is desired, exists among such devices.In FIG. 31, as the PID filter is used by necessarily being connectedto either the section filter or the AV decoder, flexibility is lost tosome extent. However, on the premise that "the PID filter isconnected to either the section filter or the AV decoder, in advance,"it is possible to recognize by abstraction, a "PID filter and sectionfilter" and a "PID filter and AV decoder", as two types of devices.For example, in the case where the section filter is used, in the firstembodiment, there is a need to connect the three types of devices,namely the "tuner", the "PID filter" and the "section filter".However, in the present embodiment, it is sufficient to carry out theconnection of the two types of devices, namely the "tuner" and the"PID filter and section filter", enabling the enhancement of theadvantages of the Java program. In fact, in the OCAP/DVB-MHPstandard, with regard to the section filter for example, on thepremise that "the section filter is previously connected to the PIDfilter," the pair of "the PID filter and the section filter" can beabstracted as one type of device. In this manner, the presentinvention can be applied even if previously logically connecteddevices are treated as a single device by abstraction.
In the present embodiment, the abovementioned function isrealized by recognizing and recording the actual device pairs assingle devices, for all themodules 3201 to 3206 found in thedevicemanager 2205f. By carrying out such implementation, theimprovement of the concept of the device manager in the presentinvention and its compatibility with other existing libraries is madepossible.
(Fifth Embodiment)In the first embodiment, thedevice manager 2205f includesthe device number obtainment function as its second function. Thepresent function finds out, for every device type, the number ofdevices that match such device types. It is also possible find outthe simple number of devices by counting the number of deviceobjects obtained using the device object obtainment function whichis the third function of thedevice manager 2205f. In other wordsthe device number obtainment function is not an indispensablefunction.
In the present embodiment, thedevice manager 2205f doesnot include the device number obtainment function, which is thesecond function. The Java program is able to obtain the number ofthe devices by counting the number of device objects obtained usingthe device object obtainment function, which is the third function.
(Sixth Embodiment)In the first embodiment, thedevice manager 2205f providesthe Java program with the device type obtainment function, which isthe first function. However, in the middleware standard, and so on,in particular, in DVB-MHP/OCAP, there are instances where the typesof devices covered by middleware are prescribed in the standard.In such cases, it is sufficient to use a device type determined in suchstandards, as the device type to be specified for thedevice manager2205f.
In the present embodiment, thedevice manager 2205f is notequipped with the device type obtainment function, which is the firstfunction. In the present embodiment, thedevice manager 2205fdoes not have the device type obtainment function, which is the firstfunction, and the Java program instructs thedevice manager 2205fby using the prescribed device types.
(Seventh Embodiment)In the sixth embodiment, thedevice manager 2205f does notprovide the device type obtainment function which is the firstfunction, and the Java program uses the useable device typesprescribed by the middleware, as the device types to designate tothe device manager. In addition, a library capable of returningdevice objects representing devices on a one-to-one basis exists inthe DVB-MHP/OCAP standard. For example, the tuner controllibrary found in DVB-MHP/OCAP middleware holds a function forproviding a device object that corresponds to a tuner found in abroadcast receiving apparatus. With the use of this function, theJava program is able to obtain the device object. Originally, thepresent function is assumed to be designated for the purpose ofidentifying a tuner during the use of the function of the tuner controllibrary. However, as to the point of being able to identify a device,it has the same function as the device object explained in the firstembodiment.
Thedevice manager 2205f in the present embodiment doesnot hold a device type obtainment function which is the first function,as well as a device object obtainment function which is the thirdfunction. In the present embodiment, the Java program operatingin a broadcast receiving apparatus can designate the device objectsobtained from the middleware as the identifiers of devices, whenusing the respective functions of thedevice manager 2205f. Bycoordinating with other libraries in the middleware and sharing thedeviceobject management unit 3202 with the other libraries, thedevice manager 2205f can be implemented so that the deviceobjects returned by the other libraries can be designated to thedevice manager 2205f.
(Eighth Embodiment)In the first embodiment, thedevice manager 2205f includes adevice logical connectability obtainment function as its fourthfunction. As used in the procedure S4006 in FIG. 41, this functionis used for judging whether or not the logical connection of devicesis possible prior to the performance of the logical connection of suchdevices by the Java program operating in the broadcast receivingapparatus. Whether or not the logical connection of devices ispossible can be obtained by inquiring to the device physicalconnection management unit 3203, as indicated in the procedureS3603 in FIG. 37. However, as shown in the procedures S3803 andS3804 in FIG. 39, even in the implementation of the device logicalconnection function which is the sixth function of thedevicemanager 2205f, judgment on the device logical connectability iscarried out, and in the case where devices which cannot be logicallyconnected are designated, device logical connection is notperformed. In other words, the judgment of device logicalconnectability is a procedure which can be omitted. In addition, inthe case of the device logical connection cancellation function, thereis no particular need for judgment of device logical connectability aslogical connection cancellation is only performed in the case wherethe device logical connection status is verified by inquiring to thedevice logicalconnection management unit 3204, in the procedureS3903 in FIG. 40, and a device logical connection is alreadyestablished.
Thedevice manager 2205f in the present embodiment doesnot include a device logical connectability obtainment functionwhich is the fourth function. Even is such a case, when the Javaprogram operating in a broadcast receiving apparatus uses thedevice logical connection function, the logical connectability ofdevices is judged automatically. If the device logical connectionfunction which is the sixth function, is implemented so as to returnresults, in the case where a device logical connection is not possible, the Java program is able to recognize this from the resultnotification indicated during the use of the device logical connectionfunction.
(Ninth Embodiment)In the embodiments mentioned up to this point, thedevicemanager 2205f includes a device logical connection statusobtainment function as a fifth function. This function, as used inthe procedure S4008 in FIG. 41, is used to find out whether a logicalconnection between devices is already established, before the Javaprogram operating in a broadcast receiving apparatus performs adevice logical connection or logical connection cancellation. Thelogical connection status of devices is obtained by inquiring to thedevice logicalconnection management unit 3204, as indicated in theprocedure S3703 in FIG. 38. However, checking the device logicalconnection status prior to using the device logical connectionfunction as well as the device logical connection cancellationfunction is not particularly a necessity. During the logicalconnection of devices, in the case where the device logicalconnection function is implemented as indicated in FIG. 39, a checkof the logical connection status is performed implicitly. In addition,during the use of the device logical connection cancellation function,the judgment of the device logical connection status in procedureS3903 in FIG. 40 is performed implicitly before the logicalconnection cancellation. In other words, the obtainment of thedevice logical connection status is not an indispensable function inusing the device logical connection function as well as the devicelogical connection cancellation function, and the device logicalconnection and logical connection cancellation using thedevicemanager 2205f is possible even when such function does not exist.
Thedevice manager 2205f in the present embodiment doesnot include a device logical connection status obtainment function which is the fifth function. During the use of the device logicalconnection function as well as the device logical connectioncancellation function, the Java program operating in a broadcastreceiving apparatus is able to use the respective functions withoutthe checking of the device logical connection status. However, inthis case, as there is no function in thedevice manager 2205f forobtaining the device logical connection status, it is necessary for theJava program, itself, to manage the information on the device logicalconnection paths established using the device logical connectionfunction and the device logical connection cancellation function,which are the sixth and seventh function of thedevice manager2205f.
(Tenth Embodiment)In the first embodiment, there is a premise that as long as alldevices are physically connected, logical connection is possible.However, in actual hardware configurations, depending on thehardware specification, there are many cases where even fordevices that are physically connected, there are devices whichcannot be logically connected due to the logical connection status ofother devices found in the broadcast receiving apparatus. FIG. 14shall be used as the reference hardware configuration for the tenthembodiment. In the hardware configuration in FIG. 14, two each ofthe tuner and AV decoder exist, namely thetuner 1401a and thetuner 1401b, and theAV decoder 1403a and theAV decoder 1403b,respectively. Even in this case, the device logical connection pathsshall be as shown in FIG. 31A to D, and a tuner and an AV decoderare connected with a PID filter and a descrambler placed in between.
In an environment such as the one above, in the presentembodiment, it is assumed that as a hardware specification of theTS decoder 1402, a default exists to the effect that "PES packetsobtained from an MPEG-2 transport stream inputted from the same tuner cannot be outputted simultaneously to a plurality of AVdecoders. To be specific, for example, while a PES packet which issorted out using a PID filter, from an MPEG-2 transport streaminputted to theTS decoder 1402 from thetuner 1401a, is beingoutputted to theAV decoder 1403a, a PES packet sorted out fromthe same MPEG-2 transport stream using a different PID filtercannot be outputted to theAV decoder 1403b. In an environmentsuch as the one above, the possibility of connection between a PIDfilter and an AV decoder is dynamically changed, depending on thelogical connection status between the tuner and PID filter. This isbecause the possibility of connection between the PID filter and theAV decoder is also changed, depending on the presence or absenceof a connection between the tuner and the PID filter.
In such a case, "connection conditions between the PID filtersand between the AV decoders" is new information that has to bemanaged by the device manager. For example, under the currentenvironment, during the logical connection of a PID filter and an AVdecoder, the condition for allowing the logical connection is eitherthe "the designated PID filter is not logically connected to eithertuner," or "the designated PID filter is logically connected to a tunerbut such tuner is not logically connected to another PID filter," or"the designated PID filter is logically connected to a tuner and suchtuner is logically connected to another PID filter, but such other PIDfilter is not logically connected to another AV decoder."
In the present embodiment, a device logical connectioncondition management unit is introduced into thedevice manager2205f, as a new component. The device logical connectioncondition management unit manages the logical connectionconditions of devices such as those mentioned above, and byaccessing the device logical connection condition management unitwhen necessary, thedevice manager 2205f is able to obtain a devicelogical connection condition. The device logical connection condition management unit holds information in theprimary storageunit 1208, thesecondary storage unit 1207, and theROM 1209, andis managed by thedevice manager 2205f.
FIG. 43 shows the sequence in the case where thedevicemanager 2205f receives a "device logical connectability obtainmentrequest" from the Java program. Upon receiving a "device logicalconnectability obtainment request" issued by the Java program(S4101), thedevice manager 2205f obtains the devicescorresponding to the two designated device objects by accessing thedevice object management unit 3202 (S4102). Next, it obtains thephysical connection status of the two corresponding devices byinquiring to the device physical connection management unit 3203(S4103). If the devices are physically connected (S4104), thedevice logical connection condition pertaining to the logicalconnection of the two devices is obtained by inquiring to the devicelogical connection condition management unit introduced in thepresent embodiment (S4105). Next, following the obtained devicelogical connection condition, a device logical condition statuscorresponding to such condition is obtained from the device logicalconnection management unit 3204 (S4106). The device logicalconnection status is judged as to whether or not it matches thedevice logical connection condition (S4107), and if found to bematching, a response of "possible" is returned (S4108). Ifconditions are not met in the judgment procedure S4104 andjudgment procedure S4107, a result of "not possible" is returned(S4109). In the PID filter and AV decoder example, the logicalconnection condition, "the designated PID filter is not logicallyconnected to any tuner," or "the designated PID filter is logicallyconnected to a tuner but such tuner is not logically connected toanother PID filter," or "the designated PID filter is logicallyconnected to a tuner and such tuner is logically connected toanother PID filter, but such other PID filter is not logically connected to an AV decoder which is different from the one designated," isobtained in the procedure S4105. Accordingly, a procedure isadopted where the logical connection status between the devices inthe combinations emerging from the logical connection condition inthe procedure S4106 are evaluated, and judgment is made as towhether or not the logical connection condition is met in theprocedure S4107.
In addition, in the case where thedevice manager 2205freceives a "device connection request" from the Java program, as inthe logical connectability obtainment sequence in FIG. 43, theconnection between other devices is evaluated using the devicelogicalconnection management unit 3204, following t he deviceconnection condition obtained from the device connection conditionmanagement unit, in addition to the condition obtainment (S3803)using the device physicalconnection management unit 3203 in FIG.39. Connectability is judged after putting together such results.In this case, in the case where connection is not possible accordingto the judgment from the connection condition, an error whichexpresses that the connection is not possible according to theconnection condition, can be returned to the Java program.
Through the performance of an implementation such as theone above, the present invention can be applied even in a hardwareconfiguration where the possibility of connection is dynamicallychanged according to the connection status of devices.
(Eleventh Embodiment)In the first embodiment, there is a limitation to the effect thatthe respective devices (the PID filter, the section filter, thedescrambler) within theTS decoder 1202 are allowed only aone-to-one logical connection with each other. However, inactuality, there are TS decoders which allow one-to-many logicalconnections for the respective devices. In addition, there are also hardware configurations where the maximum number ofconnections between devices is prescribed. In the presentembodiment, a premise is assumed that for one PID filter, a pluralityof section filters, the maximum number being five, can be logicallyconnected.
In such an environment, thedevice manager 2205f has tomanage "the maximum number of logical connections between therespective devices". In this environment, the condition is "the PIDfilter can be logically connected simultaneously to five sectionfilters."
In the present embodiment, a device logical connectionmaximum number management unit is introduced into thedevicemanager 2205f as a new component. The device logical connectionmaximum number management unit manages the maximumnumber for logical connections between devices which expresses, asis mentioned above, the device of which device type and the numberof logical connections that can be constructed for a device. Whennecessary, it can be accessed by thedevice manager 2205f, and themaximum number for device logical connections can be obtained.The device logical connection maximum number management unitholds information in theprimary storage unit 1208, thesecondarystorage unit 1207, and theROM 1209, and is managed by thedevicemanager 2205f. In addition, it can also be managed usingdedicated hardware such as a registry.
FIG. 44 shows the sequence in the case where thedevicemanger 2205f receives a "device logical connectability obtainmentrequest" from the Java program. Upon receiving the "device logicalconnectability obtainment request" issued by the Java program(S4201), thedevice manager 2205f obtains the devicescorresponding to the two designated device objects by accessing thedevice object management unit 3202 (S4202). Next, it obtains thephysical connection status of the two corresponding devices by inquiring to the device physical connection management unit 3203(S4203). If they are physically connected (S4204), the maximumnumber for logical connections pertaining to the logical connectionsof the two devices is obtained by inquiring to the device logicalconnection maximum number management unit introduced in thepresent embodiment (S4205). Next, in order to determine thenumber of logical connections already existing, the device logicalconnection status is obtained from the device logical connectionmanagement unit 3204 (S4206). Judgment is made as to whetheror not the logical connections are within the maximum number forlogical connections (S4207), and a result of "possible" is returned ifthe condition is met (S4208). In the case where conditions are notmet in the judgment procedure S4204 and the judgment procedureS4207, a result of "not possible" is returned (S4209). In the PIDfilter and section filter example, "5" is obtained as the maximumnumber for logical connections in the procedure S4205. Next, thenumber of existing logical connections is acquired by obtaining thelogical connection status of the designated filter and the othersection filters (S4206). Using such information, the maximumnumber for logical connections and the number of existing logicalconnections are compared in the judgment procedure S4207, and aresponse of "possible" is returned if the number of existing logicalconnections is smaller (S4208).
Furthermore, in the case where thedevice manager 2205freceives a "device connection request" from the Java program, inthe same manner as the logical connectability obtainment sequencein FIG. 44, an evaluation is made as to whether or not the maximumnumber obtained from the device logical connection maximumnumber management unit has been reached using the device logicalconnection management unit 3204, in addition to the conditionobtainment using the device physicalconnection management unit3203 shown in FIG. 39 (S3803). Connectability is then judged after such results are put together. If it is judged as being "possible", thelogical connection between the devices is carried out. In the casethat it is judged as not logically connectable as a result of themaximum number for device logical connections already beingreached, an implementation is possible where an error message tothat effect is returned to the Java program.
Moreover, in the state shown in the present embodiment, adevice having a maximum number of connections of two or higher,can be included in a plurality of device connection paths, and isconsidered as being "shareable." If the Java program is able to findout whether or not a certain device is "shareable," t he logicalconnection of excess devices is averted, and effective logicalconnection, from the viewpoint of device management, is madepossible. In the present embodiment, a device connectionshareability obtainment function is provided to the Java program asthe eighth function of thedevice manger 2205f. Using the presentfunction, the Java program can find out whether or not a devicerepresented by a device object is shareable. FIG. 45 shows asequence diagram of the simplest implementation of the presentfunction. Thedevice manger 2205f, which receives one device typeand one device object designation along with a "device connectionshareability obtainment request" from the Java program (S4301),first obtains a corresponding device by inquiring to the device objectmanagement unit 3202 (S4302). Next, with regard to the subjectdevice, the maximum number for logical connections for thedesignated device type is obtained by inquiring to the device logicalconnection maximum number management unit (S4303). If thisnumber is two or higher (S4304), it is possible to have two or morelogical connections existing simultaneously between the device andthe devices matching the designated device type, and it can bejudged as shareable (S4305). Moreover, instead of returning aresult of "possible" or "not possible" to the Java program, as mentioned above, there is also a method of returning the maximumnumber for logical connections itself, as the method for representingthe result "shareable". Even if such an implementation is carriedout, the Java program is able to judge whether or not a device is"shareable".
Through implementations such as the one above, the presentinvention can be applied even in a hardware configuration where themaximum number for simultaneous connections is prescribed.
Moreover, the simultaneous existence of the device logicalconnection management unit described in the tenth embodimentand the device logical connection maximum number managementunit discussed in the present embodiment is, naturally, alsoassumed. In such a case, during device logical connectabilityobtainment, as well as during device logical connection, both thejudgment of the logical connection condition (S4105 to S4107) inFIG. 43 as well as the judgment of the logical connection maximumnumber (S4205 to S4207) in FIG. 44 are necessary.
(Twelfth embodiment)In the first embodiment, using the logical connection statusobtainment function which is the fifth function of thedevicemanager 2205f, when inquiring about a logical connection status,the Java program is only able to obtain information as to whether ornot logical connection has been carried out between two devices.However, it is possible to have a situation where the Java programwill need to know what other device is logically connected to acertain device.
The device object obtainment function, which is the thirdfunction of thedevice manager 2205f in the present embodiment, isexpanded to provide the Java program with a function for obtaininginformation regarding which device a certain device is logicallyconnected to at that point. With this function, when the Java program designates one device object and issues a "device objectobtainment request", thedevice manager 2205f, having receivedthe above, searches for the devices that, at that point, are logicallyconnected to the device corresponding to the designated deviceobject, from within the information regarding logical connectionstatus managed by the device logicalconnection management unit3204, and returns all the device objects corresponding to thedevices found. In addition, in the case where the designation bythe Java program includes the device type, the devices that are ofthe designated device type are further selected from among thedevices that are logically connected to the designated device, at thatpoint. The device objects corresponding to such selected devicesare all returned.
In the present embodiment, the Java program can obtain, in asingle operation, the devices that are logically connected to acertain device.
(Thirteenth Embodiment)In the first embodiment, when the Java program uses thelogical connectability obtainment function, which is the fourthfunction of thedevice manager 2205f, to inquire about a logicalconnectability, only the logical connectability between the twodevices designated by the Java program can be obtained. However,it is possible to have a situation where the Java program will need toknow what other devices are logically connectable to a certaindevice.
The device object obtainment function, which is the thirdfunction of thedevice manager 2205f in the present embodiment, isexpanded to provide the Java program with a function for obtaininginformation regarding which devices are logically connectable to acertain device at that point. With this function, when the Javaprogram designates one device object and issues a "device object obtainment request", thedevice manager 2205f, having receivedthe above, searches for the devices that are logically connectable tothe devices corresponding to the designated device object, fromwithin the information regarding physical connections managed bythe device physicalconnection management unit 3203, and returnsall the d evice objects corresponding to the devices found. I naddition, in the case where the Java program also designates adevice type, only the devices that are of the designated device typeare further selected, and the device objects corresponding to suchselected devices are all returned.
In the present embodiment, the Java program is able to findout, in a single operation, the devices that are logically connectableto a certain device.
(Fourteenth Embodiment)In the first embodiment, when the Java program uses thelogical connectability obtainment function which is the fourthfunction of thedevice manager 2205f, as well as the logicalconnection status obtainment function which is the fifth function,only the logical connectability, as well as the logical connectionstatus between the two devices designated by the Java program canbe obtained. However, there are instances where the Java programwill need to know which devices are connectable to a certain device,and which among such devices are not yet connected. In such acase, in the first embodiment, there was a need to evaluate thelogical connectability and logical connection status of each deviceobject obtained by the designation of a device type.
In the present embodiment, the device object obtainmentfunction which is the third function thedevice manager 2205f, isexpanded to provide the Java program with a function for obtaininginformation regarding which devices are at that point, not onlyconnectable to a certain device, but also not yet logically connected. With this function, when the Java program designates one deviceobject and issues a "device object obtainment request", thedevicemanager 2205f, having received the above, first searches for thedevices that are logically connectable to the device corresponding tothe designated device object, from within the information regardingphysical connections managed by the device physicalconnectionmanagement unit 3203. Next, it searches from among the locateddevices, those that are not yet logically connected, and the deviceobjects corresponding to the devices obtained are returned. Inaddition, in the case where the Java program also designates adevice type, only devices that are of the designated device type arefurther selected, and all the device objects corresponding to suchselected devices are returned.
In the present embodiment, the Java program is able to findout in a single operation, the devices that, aside from being logicallyconnectable to a certain device, are not yet logically connected.
(Fifteenth Embodiment)In the first embodiment, judgment of the device logicalconnection status is carried out within the implementation of thedevice logical connection function, which is the sixth function of thedevice manager 2205f. In this case, judgment of the logicalconnection status of a device is carried out in the procedure S3806in FIG. 39. In the first embodiment, at this point, the two types ofjudgments, which are "whether there is already a logical connectionbetween the two designated devices" and "whether one of the twodesignated devices is logically connected to a different device whichis of the same device type as the other device", are carried out. Theformer is for avoiding waste in the connection status, and the latteris for the purpose of not changing device logical connection paths.
In the present embodiment, within the implementation of thedevice logical connection function which is the sixth function of thedevice manager 2205f, only the judgment of "whether the twodesignated devices are already connected" is performed in thejudgment of the logical connection status of devices carried out inthe procedure S3806 in FIG. 39, and if they are already connected,nothing is done. Even if one of the two devices is connected to adifferent device which is of the same device type as the other device,the original device logical connection path is automatically cancelled,and the two designated devices are logically connected instead.The new logical connection path is recorded in the device logicalconnection management unit 3204.
In the case where this implementation is adopted, the devicelogical connection cancellation function which is the seventhfunction of thedevice manager 2205f becomes unnecessary. Thisis because, even if there is a logical connection already in existenceduring the performance of a device logical connection, it is cancelledautomatically.
According to the present embodiment, the Java program canconstruct new device logical connection paths without mindingdevice logical connection paths that are already in existence.However, as there is a possibility that even device logical connectionpaths which the Java program wants to leave intact will be cancelledautomatically during the logical connection of devices, there is aneed for the Java program itself, to manage such respective devicelogical connection paths and the device objects that compose them.
(Sixteenth Embodiment)In the first embodiment, as well as the fifteenth embodiment,when the Java program performs a logical connection, as well as alogical connection cancellation using the sixth and seventh functionsof thedevice manager 2205f, thedevice manager 2205f does notreturn the result.
For example, in the case shown in FIG. 39, when judging the possibility of a logical connection (S3804), as well as when judginglogical connection status (S3806) using the result returned by thedevice physicalconnection management unit 3203, the decision asto whether or not to actually perform the logical connection is made(S3807). However, in the first embodiment as well as the fifteenthembodiment, whether or not the logical connection process iscarried out, such result is not known to the Java program.
For example, in the case shown in FIG. 40, when judging alogical connection status (S3904) using the result returned by thedevice logicalconnection management unit 3204, the decision as towhether or not to actually perform a logical connection cancellation(S3905) is made. However, in the first embodiment, whether thelogical connection cancellation is performed or not performed, suchresult is not known to the Java program.
In the present embodiment, during the use of the logicalconnection function, as well as the logical connection cancellationfunction, which are the sixth and seventh functions of thedevicemanager 2205f, whether or not the logical connection as well as thelogical connection cancellation is actually carried out is returnedsynchronously with the execution of the Java program. With regardto the logical connection function, the two types of results to bereturned in the sequence in FIG. 39 are, "device connectionsuccessful" and "device connection failed". With regard to thelogical connection cancellation function, the two types of results tobe returned in the sequence in FIG. 40 are, "device connectioncancellation successful" and "device connection cancellation failed".
(Seventeenth Embodiment)In the sixteenth embodiment, when the Java programperforms logical connection as well as logical connectioncancellation using the sixth and seventh function of thedevicemanager 2205f, thedevice manager 2205f returns the result of whether logical connection as well as logical connection cancellationis carried out. However, although in the sequence in FIG. 39 forexample, there are three reasons why a connection is not carried out,namely "connection not possible" as judged in the procedure S3804,or "already connected", as well as "another device connection pathexists", as judged in the procedure S3806, the Java program isunable to find out the reason why a device connection was notcarried out, from the results of whether or not the connection of adevice was carried out.
In the present embodiment, during the use of the devicelogical connection function as well as the device connectioncancellation function which are the sixth and seventh functions ofthedevice manager 2205f, the result of whether or not a logicalconnection is actually carried out, and in addition, in the case whereit is not carried out, the reason indicating why it was not carried out,are returned synchronously. For example, in the case of thesequence in FIG. 39, the four types of results returned are "devicelogical connection successful", "devices not connectable", "devicesalready logically connected", and "another device logical connectionpath exists". In the case of the sequence in FIG. 40, for example,the two types of results returned are "device logical connectioncancellation successful" and "device is not in a logical connectionstatus".
(Eighteenth Embodiment)In the seventeenth embodiment, when the Java programcarries out a logical connection using the sixth function of thedevicemanager 2205f, thedevice manager 2205f returns four types ofresults. However, among such results, as the result "devicesalready logically connected" indicates that I ogical connection isongoing between the devices, as a post-process status, it isequivalent to "device logical connection successful".
In the present embodiment, when the device logicalconnection function which is the sixth function of thedevicemanager 2205f is used, the result of whether or not a logicalconnection is actually carried out, and in addition, in the case whereit is not carried out, the reason indicating why it was not carried out,are returned synchronously. However, in the case having "devicesalready logically connected", a result indicating "device logicalconnection successful" is returned. In other words, the resultsreturned in the case of the sequence in FIG. 39 for example, are thethree types, namely "device logical connection successful", "devicenot logically connectable", and "another device logical connectionpath exists".
(Nineteenth Embodiment)In embodiments sixteen to eighteen, when the Java programuses the functions of thedevice manager 2205f, each function isimplemented by a synchronized process, and it is not possible toproceed with the execution of the Java program while thedevicemanager 2205f carries out the processes of each function. Forexample, in the span that thedevice manager 2205f processes thelogical connection of devices when the Java program issues a"device logical connection request", the Java program has to waituntil the logical connection processing by thedevice manager 2205fis concluded. However, depending on the devices being handled bythedevice manager 2205f, there are instances where the logicalconnection of devices takes time. If the connection process forsuch devices is implemented as an asynchronous process, it isconvenient for the Java program, as the Java program is able toproceed with other processes while thedevice manager 2205fprocesses the logical connection of such devices.
In the present embodiment, asynchronous result notificationis carried out with regard to the functions implemented by thedevice manager 2205f. For that purpose, the device manager holdsa device processing result notification listener registration function,as a ninth function. The device processing result notificationlistener is registered in thedevice manager 2205f by the Javaprogram during the use of the first to eighth functions of thedevicemanager 2205f, for the purpose of asynchronously receiving theresults of such processes. In order to receive the asynchronousnotifications, the Java program registers the device processingresult notification listener for receiving the asynchronousnotification, in thedevice manager 2205f, prior to or simultaneouslywith, the use of the functions of thedevice manager 2205f.Subsequently, the Java program uses the functions of thedevicemanager 2205f. Thedevice manager 2205f relays the processingresult to the Java program through the device processing resultnotification listener.
In the present embodiment, in order to register a deviceprocessing result notification listener, thedevice manager 2205fpossesses a device listener management unit, for the first time.The device listener management unit is accessed by thedevicemanager 2205f and provides a registered device processing resultnotification listener. The device listener management unit holdsinformation in theprimary storage unit 1208, or thesecondarystorage unit 1207, or theROM 1209, and is managed by thedevicemanager 2205f.
FIG. 46 shows the sequence of a device logical connectionwhich is the sixth function, as an example of an asynchronousoperation by the Java program used in the present embodiment.First, aJava program 1 issues a "device processing resultnotification listener registration request" to thedevice manager2205f (S4401). Having received the request, thedevice manager2205f groups the device processing result notification listener fortheJava program 1 with theJava program 1, and registers it in the device listener management unit (S4402). Next, the Java programissues a "device logical connection request" regarding a PID filter Aand an AV decoder B to thedevice manager 2205f (S4403), and thedevice manager logically connects the PID filter A and the AVdecoder B (S4404). From the conclusion of the procedure S4403onward, the Java program is able to proceed with its own execution,while thedevice manager 2205f carries out the logical connectionprocess for the PID filter A and the AV decoder B. When the logicalconnection process is concluded, thedevice manager 2205f obtainsthe device processing result notification listener of theJava program1, from the device listener management unit (S4405), and relaysthe logical connection result (S4406).
Moreover, in the present embodiment, there is no need toasynchronize all the functions provided by thedevice manager 2205f.For example, it is possible to apply an implementation whereasynchronous notification is only carried out with the device logicalconnection function which is the sixth function, as well as the devicelogical connection cancellation function which is the seventhfunction of thedevice manager 2205f, and synchronous notificationis carried out for the other functions.
Through the application of the present embodiment, the Javaprogram is able to proceed with the execution of the Java programitself, during the use of a time-consuming function of thedevicemanager 2205f, enabling the realization of efficient operation.
(Twentieth Embodiment)In the nineteenth embodiment, as the device processingresult notification listener registered by the Java program isregistered in thedevice manager 2205f without a device objectdesignation, the processing results for all devices is relayed to thesame device processing result notification listener. However,depending on the Java program, there are cases where it is desirable to register a different device processing result notification listenerfor each device.
In the present embodiment, when the Java program uses thedevice processing result notification listener registration functionwhich is the ninth function of thedevice manager 2205f, itdesignates one device object together with the device processingresult notification listener. Thedevice manager 2205f groups theJava program, the device processing result notification listener, andthe device represented by the device object, and records it in thedevice listener management unit. During the carrying out of anotification, thedevice manager 2205f obtains, in advance, thedevice processing result notification listener for the deviceconcerned with the process performed, and carries out thenotification only to the device processing result notification listenerobtained.
(Twenty-first Embodiment)In the first embodiment, the device object obtained by usingthe device object obtainment function which is the third function ofthedevice manager 2205f, is used only as an identifier for a devicefound in the broadcast receiving apparatus, and does not holdinformation regarding the device itself. For that reason, the Javaprogram, itself, has to manage the group of device objects obtainedthrough the issuance of a "device object obtainment request" to thedevice manager 2205f by the Java program. For example, in thefirst embodiment, when device objects are obtained by designating"section filter" for the device type, a Y number of device objects canbe obtained. When managing these, the Java program needs to usea "device type", as well as an "index indicating the numbering of thedevice object". This is highly inconvenient, from a devicemanagement viewpoint.
In the present embodiment, the device object itself, stores the information regarding the device corresponding to such deviceobject. At the least, all device objects hold "the device type of itsdevice" and "the ID which is uniquely assigned among the devicesthat are of the same device type". Accordingly, as the device objectitself, holds information, it is possible to make management simplefor the Java program. In addition, to further simplify devicemanagement, it is possible for the device object to managesupplementary information regarding the device object itself. Forexample, the management of "device names" by device objects canbe considered. By handling such names, a more diversifiedhandling of device management becomes possible for the Javaprogram. For example, by assigning the names "tuner A" and"tuner B" respectively, to thetuner 1401a and thetuner 1401b inFIG. 14, the Java program can make use of the respective nameswhen managing the devices.
These functions are realized through the management of thetype, ID, and name, of each device by the device basicinformationmanagement unit 3201. It is implemented, during the obtainmentof a device object by the Java program, when thedevice manager2205f accesses the device basicinformation management unit 3201to obtain the device name, and returns the items set in the deviceobject.
(Twenty-second Embodiment)In the first embodiment, the device objects obtained usingthe device object obtainment function which is the third function ofthedevice manager 2205f, are designated during the use of afunction of thedevice manager 2205f, as an identifier for devicespresent in the broadcast receiving apparatus. Furthermore, in thetwenty-first embodiment, the device object holds information foridentifying the device corresponding to it, and the Java program canobtain such information from the device object. In the present embodiment, the function of the device object is further expanded,adding a function for using the functions of thedevice manager2205f through the device object. To be specific, among thefunctions of thedevice manager 2205f, the device object receivesrelays to thedevice manager 2205f, requests concerning the deviceobject obtainment function which is the third function, the devicelogical connectability obtainment function which is the fourthfunction, the device logical connection status obtainment functionwhich is the fifth function, the device logical connection functionwhich is the sixth function, and the device logical connectioncancellation function which is the seventh function. On suchoccasion, it relays to the device manager, the device to which it hasa one-to-one correspondence as the designated device.
During the use of the device object obtainment function whichis the third function the Java program can realize the functiondefined in the twelfth embodiment, the thirteenth embodiment, andthe fourteenth embodiment, with regard to the device objectobtainment function. In the twelfth embodiment, the device objectin a logically connected status with the designated device can beobtained through the designation of one device object and theissuance of a "device object obtainment request" to thedevicemanager 2205f. In this case, in the present embodiment, it ispossible to issue a "device object obtainment request" to the deviceobject. FIG. 47 shows the sequence for such a case. Upon theissuance of a "device object obtainment request" to the deviceobject by the Java program (S4501), the device object receivingsuch request designates itself, and relays the "device objectobtainment request", to thedevice manager 2205f (S4502). Thedevice manager 2205f obtains the device object of the device that isin a logically connected status with the device represented by theoriginal device object (S4503), and returns it to such original deviceobject (S4504). It is then returned to the Java program by the device object (S4505). Likewise, in the case where the Javaprogram designates a device type, it designates itself and suchdevice type, and relays the "device object obtainment request" tothedevice manager 2205f. It then returns to the Java program, thedevice object returned by thedevice manager 2205f. In thethirteenth embodiment, the device objects representing the devicesthat are logically connectable to the designated device can beobtained through the designation of one device object and theissuance of a "device object obtainment request" to thedeviceobject 2205f. In addition, in the fourteenth embodiment, thedevice objects representing the devices that are logicallyconnectable with the designated device and are, moreover, not yetin a logically connected status, can be obtained through thedesignation of one device object and the issuance of a "device objectobtainment request" to thedevice object 2205f. Even with regardto these, the device object can receive requests, and it is possible toobtain the device objects sought by the Java program through thesequence in FIG. 47.
During the use of the device logical connectability obtainmentfunction which is the fourth function, in the first embodiment, theJava program designates two device objects, and the possibility forlogical connection between the devices represented by these deviceobjects is obtained. In the case where this is relayed by a deviceobject, the Java program designates one device object, and issues a"device logical connectability obtainment request" to the deviceobject. Upon receiving such request, the device object designatesitself and the device object designated by the Java program, andrelays the "device logical connectability obtainment request", to thedevice manager 2205f. Thedevice manager 2205f obtains thelogical connectability through the same sequence in FIG. 37 of thefirst embodiment, and returns it to the original device object. Theoriginal device object then returns the logical connectability obtained from thedevice manager 2205f, to the Java program.Moreover, in the sequence during the obtainment of the logicalconnectability by thedevice manager 2205f, it is also possible to usethe information held by the device logical connection conditionmanagement unit and the device logical connection maximumnumber management unit, in accordance with FIG. 43 and FIG. 44,for such judgment.
During the use of the device logical connection statusobtainment function which is the fifth function, in the firstembodiment, the Java program designates two device objects, andobtains the logical connection status between the devices theyrepresent. In the case where this is relayed by a device object, theJava program designates one device object and issues a "devicelogical connection status obtainment request" to the device object.Upon receiving such request, the device object designates itself andthe device object designated by the Java program, and relays the"device logical connection status obtainment request", to thedevicemanager 2205f. Thedevice manager 2205f obtains the logicalconnection status through the same sequence as in FIG. 38 of thefirst embodiment, and returns it to the original device object. Theoriginal device object returns the logical connection status obtainedfrom thedevice manager 2205f, to the Java program.
During the use of the device logical connection function whichis the sixth function, in the first embodiment, the Java programdesignates two device objects, and establishes a logical connectionbetween the devices they represent. In the case where this isrelayed by a device object, the Java program designates one deviceobject and issues a "device logical connection request" to the deviceobject. Upon receiving such request, the device object designatesitself and the device object designated by the Java program, andrelays the "device logical connection request" to thedevice manager2205f. Thedevice manager 2205f performs logical connection through the same sequence as in FIG. 39 in the first embodiment.Moreover, in an implementation where thedevice manager 2205freturns the logical connection result, the device object returns thelogical connection result obtained from thedevice manager 2205f,to the Java program. In addition, in the case where thedevicemanager 2205f possesses a device logical connection conditionmanagement unit and a device logical connection maximum numbermanagement unit, the information held by these units is used forjudgment during the judgment of the possibility for logicalconnection, prior to logical connection.
During the use of the device logical connection cancellationfunction which is the seventh function, in the first embodiment, theJava program designates two device objects, and cancels the logicalconnection between the devices they represent. In the case wherethis is relayed by a device object, the Java program designates onedevice object and issues a "device logical connection cancellationrequest" to the device object. Upon receiving such request, thedevice object designates itself and the device object designated bythe Java program, and relays the "device logical connectioncancellation request", to thedevice manager 2205f. Thedevicemanager 2205f cancels the logical connection through the samesequence as in FIG. 40 in the first embodiment. Moreover, if it is animplementation where thedevice manager 2205f returns a logicalconnection cancellation result, the device object returns the logicalconnection cancellation result acquired from thedevice manager2205f to the Java program.
During the use of the device connection shareabilityobtainment function which is the eighth function, in the eleventhembodiment, the Java program designates one device object andone device type, and obtains a judgment result on whether or not itis possible to set a plurality of device logical connection pathsbetween the device represented by the designated device object and the devices that are of the designated device type. In the casewhere this is relayed by a device object, the Java programdesignates one device type and issues a "device logical connectionshareability obtainment request" to the device object. The deviceobject designates the device type designated by the Java program,and itself, as the designated device object, and relays the "devicelogical connection shareability obtainment request". Thedevicemanager 2205f obtains the logical connection shareability in thesame manner as in the eleventh embodiment, and returns this to thedevice object. The device object returns the result obtained fromthedevice manager 2205f, to the Java program.
During the use of the device processing result notificationlistener registration function which is the ninth function, in thetwentieth embodiment, the Java program designates a deviceprocessing result notification listener as well as one device object.In the case where this is relayed by a device object, the Javaprogram designates a device processing result notification listenerand issues a "device processing result notification listenerregistration request" to the device object. The device objectdesignates the device processing result notification listenerdesignated by the Java program, and itself, as the designated deviceobject, and relays the "device processing result notification listenerregistration request". In the same manner as in the twentiethembodiment, thedevice manager 2205f groups the deviceprocessing result notification listener with the device and the Javaprogram, and records it in the device listener management unit.From here on, when the Java program performs a processconcerning such device, a result notification is made to the deviceprocess result notification listener.
A device object is not required to hold all of the respectivefunctions mentioned above. In a configuration where a deviceobject relays requests for each of the functions from the Java program, functions that do not exist in thedevice manager 2205f,depending to the embodiment, cannot be possessed by the deviceobject. In addition, even for functions present in thedevicemanager 2205f, the decision as to which among such functions areto be relayed by the device object can me made, depending on theimplementation.
(Twenty-third Embodiment)In the first embodiment, during the device numberobtainment (S3402) in FIG. 35, the number of the devices that bearthe designated device type is returned. In the present embodiment,it assumed that it is possible to obtain the number of all devicespresent in a broadcast receiving apparatus, without device typedesignation. This can be implemented by eliminating thedesignation of a device type in the procedure S3401, obtaining thenumber of all the devices in the procedure S3402, and providing thisto the Java program.
(Twenty-fourth Embodiment)In the first embodiment, during the device object obtainment(S3505) in FIG. 36, the device objects corresponding to all thedevices bearing the designated device type are returned. In thepresent embodiment, it is assumed that it is possible to obtain thedevice objects corresponding to all the devices existing in abroadcast receiving apparatus, without device designation. Thiscan be implemented by eliminating the designation of a device typein the procedure S3501, obtaining the device objects correspondingto all the devices in the procedure S3402, and providing this to theJava program. In addition, in this case, in order for the obtaineddevice objects to provide the Java program with information on whatthey represent, it is required for each device object to holdinformation regarding itself. At the least, it is assumed that they hold their device type.
(Twenty-fifth Embodiment)The broadcast receiving apparatus assumed in the presentinvention can simultaneously execute a plurality of Java programs.For that reason, there are instances where a plurality of Javaprograms that alter the logical connection paths of devices, exist.In that case, there are instances where the Java program needs tofind out the change in the logical connection status of a certaindevice. For example, in the case where the device to be used by theJava program 1 is already logically connected by theJava program 2,if theJava program 1 is able to find out the timing of the cancellationof the logical connection regarding such device, it would beconvenient as there is no need for theJava program 1 to periodicallycheck the logical connection status of such device.
In the present embodiment, a device status changenotification listener registration function is introduced, as the tenthfunction of thedevice manager 2205f. FIG. 48 shows an exampleof the use of the present function. First, aJava program 2 issues tothedevice manager 2205f, a "device logical connection request" forthe PID filter A and the AV decoder B (S4601), and the logicalconnection is carried out (S4602). Subsequently, theJava program1 issues a "device logical connection request" for the PID filter A andthe AV decoder C, but the logical connection fails (S4603) as theJava program 2 is already performing the logical connection withregard to the PID filter. At this point, theJava program 1designates a device status change notification listener and the PIDfilter A, and issues a "device status change notification listenerregistration request" (S4604). Upon receiving the "device statuschange notification listener registration request", thedevicemanager 2205f groups the designated device status changenotification listener and the device represented by the designated device object, and stores it in the device listener management unit.In the case of this example, the PID filter A and the device statuschange notification listener are grouped and stored in the devicelistener management unit (S4605). The Java program issues thedevice logical connection cancellation request for the PID filter A andthe AV decoder B (S4606), and thedevice manager 2205f performsthe connection cancellation (S4607). The device status changenotification listener for the PID filter A is obtained from devicelistener management unit, and notification is carried out (S4608).In that state, as no one should be carrying out a logical connectionon the PID filter A, theJava program 1 issues the "device logicalconnection request" for the PID filter A and the AV decoder C(S4609), and thedevice manager 2205f performs the logicalconnection (S4610).
(Twenty-sixth Embodiment)The broadcast receiving apparatus assumed in the presentinvention can simultaneously execute a plurality of Java programs.In addition, it is assumed that the individual Java programs hold apriority level. In a case such as this, from a device managementviewpoint, it would be natural to assume that a logical connectionpath constructed by a Java program with a low priority level can bere-configured by a Java program with a high priority level. When a"device logical connection request" is issued to thedevice manager2205f, in the case where it is for devices which are not yet logicallyconnected, the device logicalconnection management unit 3204records the priority level of the Java program that logically connectsthe devices on the occasion of the logical connection. In the case ofa device which is already logically connected, thedevice manager2205f checks the priority level of the Java program currentlycarrying out the logical connection, held by the device logicalconnection management unit 3204. In the case where the priority level of the Java program issuing the "device logical connectionrequest" this time is higher, it changes the logical connectionfollowing the present command, and records the priority level of thenew Java program in the device logicalconnection management unit3204.
FIG. 49 shows a specific sequence. Assume that aJavaprogram 1 and aJava program 2 are Java programs simultaneouslyoperating on a broadcast receiving apparatus, with theJavaprogram 2 having a higher priority level than theJava program 1.First, the Java program issues a "device logical connection request"for a PID filter A and an AV decoder B (S4701). Upon receiving this,thedevice manager 2205f logically connects the PID filter A and theAV decoder B, in accordance with the request (S4702).Subsequently, theJava program 2, which has a higher priority levelthan theJava program 1, issues a "device logical connectionrequest" for the PID filter A and an AV decoder C (S4703). Uponreceiving this, thedevice manager 2205f, finding out that the PIDfilter A is already connected to the AV decoder B, compares thepriority levels of theJava program 1 which performed the alreadyestablished logical connection, and theJava program 2 which issuedthe new logical connection request. As the priority level of theJavaprogram 2 is higher, thedevice manager 2205f logically connectsthe PID filter A and an AV decoder C (S4704).
(Twenty-seventh Embodiment)In the twenty-sixth embodiment, although a deviceconnection is changed implicitly, it becomes possible to receive anotification regarding the changing of the device logical connectionpath by a Java program other than itself by registering a devicestatus change notification listener for the devices, at the time theJava program issues a "device logical connection request", or beforea "device logical connection request" is issued.
In the present embodiment, the device listener managementunit holds the device status change notification listener registeredby the Java program. When the designated device is alreadylogically connected when thedevice manager 2205f receives a"device logical connection request" from the Java program, and achange of the device logical connection path is carried out based ona priority level evaluation as in the twenty-sixth embodiment, if adevice status change notification listener for the Java programwhich lost the device logical connection path is registered in thedevice listener management unit, an event is activated.
FIG. 50 shows a specific sequence. Assume that aJavaprogram 1 and aJava program 2 are Java programs simultaneouslyoperating on a broadcast receiving apparatus, with theJavaprogram 2 having a higher priority level than theJava program 1.First, theJava program 1 issues, to thedevice manager 2205f, a"device status change notification listener registration request" forregistering a device status change notification listener (S4801).Upon receiving the request, thedevice manager 2205f registers thedevice status change notification listener of the Java program 1(S4802). Next, the Java program issues a "device logicalconnection request" for a PID filter A and an AV decoder B (S4803).Upon receiving this, thedevice manager 2205f performs the logicalconnection of the PID filter A and the AV decoder B, in accordancewith the request (S4804). Subsequently, theJava program 2,which has a higher priority level than theJava program 1, issues a"device logical connection request" for the PID filter A and an AVdecoder C (S4805). Upon receiving this, thedevice manager 2205f,finding out that the PID filter A is already connected to the AVdecoder B, compares the priority levels of theJava program 1 whichperformed the already established logical connection, and theJavaprogram 2 which issued the new logical connection request. As thepriority level of theJava program 2 is higher, thedevice manager 2205f performs the logical connection of the PID filter A and the AVdecoder C (S4806). In addition, as theJava program 1 hasregistered a device status change notification listener in theprocedure S4801, the device manager sends notice that the PIDfilter A and the AV decoder B, connected by theJava program 1, hasbeen performed of a logical connection cancellation (S4807).
(Twenty-eighth Embodiment)According to the twenty-seventh embodiment, by continuingthe logical connection as is, the Java program which has lost adevice logical connection to another Java program having a higherpriority level can receive a usage possible notification using a devicechange notification listener, when the Java program takingpossession concludes or performs logical connection cancellation.Even after thedevice manager 2205f carries out a re-configurationof the device logical connection path and notifies the Java programwhich lost the logical connection, the device logicalconnectionmanagement unit 3204 still holds the device status changenotification listener of the Java program which lost the logicalconnection. Then, when the Java program taking possession hascancelled the logical connection or has concluded its execution, thedevice manager 2205f notifies anew, the Java program which lostpossession.
FIG. 51 shows a specific sequence. Assume that aJavaprogram 1 and aJava program 2 are Java programs simultaneouslyoperating on a broadcast receiving apparatus, with theJavaprogram 2 having a higher priority level than theJava program 1.First, theJava program 1 issues, to thedevice manager 2205f, a"device status change notification listener registration request" forregistering a device status change notification listener for receivinga device status change notice (S4901). Upon receiving the request,thedevice manager 2205f registers the device status change notification listener of the Java program 1 (S4902). Next, the Javaprogram issues a "device logical connection request" for a PID filterA and an AV decoder B (S4903). Upon receiving this, thedevicemanager 2205f performs the logical connection of the PID filter Aand the AV decoder B, in accordance with the request (S4904).Subsequently, theJava program 2, which has a higher priority levelthan theJava program 1, issues a "device logical connectionrequest" for the PID filter A and an AV decoder C (S4905). Uponreceiving this, the device manager, finding out that the PID filter Ais already connected to the AV decoder B, compares the prioritylevels of theJava program 1 which performed the alreadyestablished logical connection, and theJava program 2 which issuedthe new logical connection request. As the priority level of theJavaprogram 2 is higher, thedevice manager 2205f performs the logicalconnection of the PID filter A and an AV decoder C (S4906). Inaddition, as theJava program 1 has registered a device statuschange notification listener in the procedure S4901, thedevicemanager 2205f sends notice that the PID filter A and the AV decoderB, connected by theJava program 1, has been performed of a logicalconnection cancellation (S4907). Subsequently, when theJavaprogram 2 issues a "device logical connection cancellation request"for the PID filter A and the AV decoder C (S4908), thedevicemanager 2205f cancels the logical connection of the PID filter A andthe AV decoder C (S4909), and carries out a notification to theJavaprogram 1 to the effect that a logical connection for the PID filter Ais possible.
Moreover, in FIG. 51, after the PID filter A and the AV decoderC are logically connected following the request of theJava program2, there are instances where theJava program 2 concludesexecution for some reason, before canceling the logical connection.In such a case, as the device manager can be notified by the AM5005b which performs application management, that theJava program 2 has concluded, and in that case, the logical connectionestablished by theJava program 2 is performed of logical connectioncancellation. On that occasion, in the case where competition withtheJava program 1 had occurred, a status change notification iscarried out to the device status change notification listener of theJava program 1.
(Twenty-ninth Embodiment)In the twenty-eighth embodiment, in the case where the Javaprogram which took the logical connection of a device performslogical connection cancellation or concludes execution, only anotification to the Java program which lost possession is performed,although at this time, the previous logical connection is restored.In addition, at this time, in the case where the object of the previouslogical connection is already being logically connected by a differentJava program, judgment of priority level is also performed even atthis stage. If the logical connection is restored, a notification tothat effect is carried out to the Java program which lost possession.
FIG. 52 shows a specific sequence. Assume that aJavaprogram 1 and aJava program 2 are Java programs simultaneouslyoperating on a broadcast receiving apparatus, with theJavaprogram 2 having a higher priority level than theJava program 1.First, theJava program 1 issues, to thedevice manager 2205f, a"device status change notification listener registration request" forregistering a device status change notification listener for receivinga device status change notification (S5001). Upon receiving therequest, thedevice manager 2205f registers the device statuschange notification listener of the Java program 1 (S5002). Next,the Java program issues a "device logical connection request" for aPID filter A and an AV decoder B (S5003). Upon receiving this, thedevice manager 2205f performs the logical connection of the PIDfilter A and the AV decoder B, in accordance with the request (S5004). Subsequently, theJava program 2, which has a higherpriority level than theJava program 1, issues a "device logicalconnection request" for the PID filter A and an AV decoder C (S5005).Upon receiving this, thedevice manager 2205f, finding out that thePID filter A is already connected to the AV decoder B, compares thepriority levels of theJava program 1 which performed the alreadyestablished logical connection, and theJava program 2 which issuedthe new logical connection request. As the priority level of theJavaprogram 2 is higher, thedevice manager 2205f performs logicalconnection of the PID filter A and an AV decoder C (S5006). Inaddition, as theJava program 1 has registered a device statuschange notification listener in the procedure S5001, thedevicemanager 2205f sends notice that the PID filter A and the AV decoderB, connected by theJava program 1, has been performed of a logicalconnection cancellation (S5007). Subsequently, when the Javaprogram issues a "device logical connection cancellation request"for the PID filter A and the AV decoder C (S5008), thedevicemanager 2205f cancels the logical connection of the PID filter A andthe AV decoder C (S5009), and performs the re-connection of thePID filter A and the AV decoder B. It then carries out a notificationto theJava program 1, to the effect that the re-connection of the PIDfilter A and the AV decoder B has been carried out (S5010).
Moreover, in FIG. 52, after the PID filter A and the AV decoderC are logically connected following the request of theJava program2, there are instances where theJava program 2 concludesexecution for some reason, before canceling the logical connection.In such a case, as the device manager can be notified by the AM5005b which performs application management, that theJavaprogram 2 has concluded, and in that case, the logical connectionestablished by theJava program 2 is performed of logical connectioncancellation. In the case where competition with theJava program1 had occurred, the logical connection requested by that Java program is established again, and a status change notification iscarried out to the device status change notification listener of theJava program 1.
(Thirtieth Embodiment)In the first embodiment, the device logicalconnectionmanagement unit 3204 only manages device logical connectionstatus. However, even with regard to devices which have beenconstructed of a device logical connection path by the performanceof logical connection by the Java program, no effect is manifestedunless they are being used. In the present embodiment, a deviceuse status management unit is introduced, and the use status ofdevices is managed. During the issuance of a "device logicalconnection request" by the Java program, even if the existingconnection is constructed by a low priority level Java program,re-construction of the connection is not carried out when thedevicemanager 2205f inquires to the device use status management unit,and it is in use.
(Thirty-first Embodiment)In the third embodiment, it is indicated that as long asdevices exist within the broadcast receiving apparatus, informationregarding such devices is handled by the respective units in thedevice manager 2205f by which thedevice manager 2205f can themanage logical connection. However, as in the device within theadapter in FIG. 15, there are also devices not previously existing inthe broadcast receiving apparatus which are added on subsequently.With regard to this, thedevice manager 2205f within the broadcastreceiving apparatus is unable to manage information on thesedevices, in advance.
In the present embodiment, thedevice manager 2205fperforms management, even with regard to these devices. For that purpose a device description obtainment unit, a device descriptioninterpretation unit, and a device physical connection changeobtainment unit are introduced within thedevice manager 2205f.
The device description obtainment unit possesses a functionfor obtaining a device description held by a newly added device,from such device. The device description obtainment unit isimplemented as a library for reading a device description from adevice. It is held by theROM 1209, and used by theCPU 1506.
The device description interpretation unit interprets thedevice description obtained from the device, and rearranges it in aform which is understandable to thedevice manager 2205f. Thedevice description interpretation unit is implemented as a library forinterpreting device descriptions. It is held by the ROM 1509, andused by theCPU 1506.
The device physical connection change obtainment unit isused to obtain the changes in the physical connection relationship ofdevices located within the broadcast receiving apparatus, resultingfrom the addition of a device. Thedevice manager 2205f realizestwo functions using the device physical connection changeobtainment unit. One is the detection of a change in the deviceconfiguration existing within the broadcast receiving apparatus.When a change in the device configuration (addition or removal of adevice) occurs, thedevice manager 2205f is able to detect suchchange by receiving a notification from the device physicalconnection change obtainment unit. The other is the obtainment ofa change in the physical connection configuration of devices. Itbecomes possible for thedevice manager 2205f to obtain the changein the physical connection configuration of devices. The devicephysical connection change obtainment unit is implemented as alibrary for obtaining changes in the physical connection of devices.It is held by the ROM 1509, and used by theCPU 1506.
A device description is held by the device that is added. Upon the start-up of the broadcast receiving apparatus, the devicemanager reads the device description of the connected device usingthe device description obtainment unit, and interprets using thedevice description interpretation unit. The interpreted informationis subsequently set in the information of other modules within thebroadcast receiving apparatus. A device description includes, a"device type character string" in particular, and if necessary, a"device logical connection condition" and a "device logicalconnection maximum number". "Device type" is managed by thedevice basicinformation management unit 3201. The "devicelogical connection condition" and the "device logical connectionmaximum number" represent the requirements prescribed in thehardware specification of the device that is added, and are managedby the device connection condition management unit and the devicelogical connection maximum number management unit. Inaddition, thedevice manager 2205f obtains the changed physicalconnections brought about by the addition of the device, through thedevice physical connection change obtainment unit, and sets this inthe device physicalconnection management unit 3203. Hereinafter,thedevice manager 2205f can operate without modifying theimplementation sequence of the functions of thedevice manager2205f, defined in the first embodiment.
(Thirty-second Embodiment)Although the device description reading pattern is discussedin the thirty-first embodiment, in addition, in the presentembodiment, a device description can be read during the start-up ofthe broadcast receiving apparatus. In this case, for example, in thecase where theadapter 1511 in FIG. 15 is dynamically added, wherein addition, a device which can be dynamically added is provided,thedevice manager 2205f detects this by receiving a notificationfrom the device physical connection change obtainment unit, and the addition of the device is carried out in the same manner as in thethirty-first embodiment. Within such addition sequence, thedevicemanager 2205f obtains the device description, carries outinterpretation, and sets the information in each unit. In addition, itobtains the change in the physical configuration and sets this in thedevice physicalconnection management unit 3203. Through animplementation in this manner, thedevice manager 2205f canrespond to the dynamic addition of connections.
(Thirty-third Embodiment)Although discussion regarding the dynamic addition ofdevices was made in the thirty-second embodiment, there are alsomany instances where, in such manner, devices that can bedynamically added are dynamically deleted. In such a case, thedevice manager 2205f detects this through the notification from thedevice physical connection change obtainment unit, and it sets thedevice physical configuration in the device physicalconnectionmanagement unit 3203, using the device physical connectionchange obtainment unit. In addition, among logical connectionsexisting at that time, the logical connection for the devices using thedeleted physical connection is automatically cancelled. At thatpoint, if a device status change notification listener is registered, anotification, to the effect that the logical connection wasautomatically cancelled, is carried out to the Java program throughthe device status change notification listener.
As a result, thedevice manager 2205f can respond to thedynamic deletion of devices.
(Thirty-fourth Embodiment)In embodiments one to thirty-two, the devices managed bythedevice manager 2205f are treated as unit devices, with deviceobjects as reference. For that reason, logical connection becomes a troublesome operation for the Java program, as individual deviceshave to be designated in the logical connection stage.
In the present embodiment, the concept of a "device set"which enables the collective handling of device groups is introduced,and it is assumed that thedevice object 2205f can receive inputs ofan object representing a device set. A device set is defined as thecollection of device objects, and in addition, the device set holds thesequence in which device objects are registered in the device set.In other words, a device set represents the "device string making upa device logical connection path". In the embodiments up to thispoint, during the use of each function of thedevice manager 2205f,it is only possible to represent the logical connection between twodevices with the use of two device objects. In the presentembodiment, during the use of the functions of thedevice manager2205f, it is possible to assume the designated device logicalconnection path as a subject by designating the device setrepresenting the "device logical connection path" structured from aplurality of devices. For example, in the case where datatransmitted by an MPEG-2 section is obtained using a section filter,the device objects corresponding to each of the devices, namely thetuner, the PID filter, and the section filter, are obtained through thedevice manager 2205f. The device objects to be logicallyconnected are set in the device set, in the desired logical connectionsequence, and judgment of logical connectability as well as theperformance of logical connection using such device set is madepossible. At this point, thedevice manager 2205f only performs alogical connection using the respective devices within thedevicemanager 2205f, when a device logical connection path can beestablished in the sequence in which the devices included in thedevice set are set. With this, the Java program is able to performthe logical connection itself, with ease.
(Thirty-fifth Embodiment)In the thirty-fourth embodiment, in the case where the Javaprogram designates a device set and issues a "device logicalconnection request", thedevice manager 2205f only carries out aconnection when logical connection is possible in the sequence inwhich the devices within the designated device set are set. In thepresent embodiment, in such a case, even if logical connection is notpossible between all devices within the designated device set,logical connection is carried out for the segments which can belogically connected.
(Thirty-sixth Embodiment)In the thirty-fourth and thirty-fifth embodiments, the conceptof the device set is introduced, and an implementation is done wheredevices of a plurality of types can be handled all at once. However,in the thirty-sixth embodiment, as a more advanced function, thedevice manager 2205f provides a function for carrying out thelogical connection of devices through the designation of the objectrepresenting a function. For example, in the case where thesection filter is used, in the thirty-fourth embodiment, the deviceobjects corresponding to the individual devices are set in a deviceset, and it is necessary use such device set to perform the logicalconnection operation. However, in the thirty-sixth embodiment, itis assumed that a "function" can be designated to thedevicemanager 2205f. For example, by designating a function such as"sorting of a W number of MPEG-2 sections is desired", and using thedevice logical connection function which is the sixth function of thedevice manager 2205f, the devices required for the designated"function" are automatically logically connected, and the device setholding the device objects corresponding to the devices within thedevice logical connection path actually established is returned. Asa result, by designating the desired "function" itself, the Java program can acquire the device logical connection paths required forsuch function without having to know "which devices should belogically connected in which manner in order to realize a desiredfunction".
In the present embodiment, a function object for representinga "function" is defined. The Java program sets the "function" that itneeds to use in the function object. Such function object isdesignated to thedevice manager 2205f, and the function of thedevice manager 2205f is used.
There is a need for thedevice manager 2205f to derive thenecessary device logical connection paths from the "function" heldby the function object. In the present embodiment, a functioninterpretation unit is introduced into thedevice manager 2205f.The function interpretation unit is implemented as a library havingthe function for deriving the devices included in the device logicalconnection paths necessary to realize such function, when thedevice manager 2205f receives a function object. It is held in theROM 1209 and used by theCPU 1206.
When function objects are designated during the use of itsrespective functions, thedevice manager 2205f derives the requireddevices using the function interpretation unit. Thedevice manager2205f applies the respective function, with regard to the devicesacquired. For example, in the case where for instance, "sort Wnumber of MPEG-2 sections" is designated when using the devicelogical connection function which is the sixth function, thedevicemanager 2205f first uses the function interpretation unit to obtainall the devices necessary to establish the device logical connectionpath required to "sort W number of MPEG-2 sections", andestablishes the device logical connection path.
Using the present function, the Java program is able toestablish a device logical connection path by designating the"function" that it needs to use.
(Thirty-seventh Embodiment)In the first to thirty-sixth embodiments, the device logicalconnection paths that are established while the broadcast receivingapparatus is running are cancelled in the event of a broadcastreceiving apparatus power cut-off, requiring the Java program in thebroadcast receiving apparatus to carry out the device logicalconnections once again, upon re-starting. In the presentembodiment, when power is applied to the broadcast receivingapparatus, thedevice manager 2205f automatically re-establishesthe device logical connection paths that existed at the time thebroadcast receiving apparatus was last shut down. For this reason,the device logicalconnection management unit 3204 is placed in thesecondary storage unit 1207, so that the information managed bythe device logicalconnection management unit 3204 is not erased,even when power is cut-off. When power is applied to thebroadcast receiving apparatus, thedevice manager 2205f checksthe device logicalconnection management unit 3204 present in thesecondary storage unit 1207, and automatically performs the logicalre-connection of the device logical connection paths that were stilllogically connected when the power source was cut-off.
(Thirty-eighth Embodiment)In the thirty-seventh embodiment, when power is applied tothe broadcast receiving apparatus, the device logical connectionpaths during the last power cut-off are restored automatically.However, the Java program operating on the broadcast receivingapparatus has no means for recognizing which device logicalconnection path was restored. In the present embodiment, whenpower is applied to the broadcast receiving apparatus, the devicelogical connection paths found during the last power cut-off areautomatically restored. At the same time, notification regarding the automatically restored devices is made upon the start of theJava program issuing the "device logical connection request"establishing the device logical connection paths that areautomatically restored. This can be implemented through aprocedure where, during the storage of device logical connectionpath information by the device logicalconnection management unit3204 found in thesecondary storage unit 1207, the identifier of theJava program issuing the request is stored at the same time, andduring the restoration of the device logical connection paths whenpower is applied to the broadcast receiving apparatus, the Javaprogram identifier is obtained, and notification is carried out if amatching Java program is operating.
In each of the previously mentioned embodiments, it isassumed that all broadcast receiving apparatuses execute programswritten in the Java language. However, as the present invention isnot dependent on the language, the present invention can beapplied, in the same manner as in each of the embodimentsmentioned previously, even in an environment where programswritten in other languages are executed.
Although only some exemplary embodiments of this inventionhave been described in detail above, those skilled in the art willreadily appreciate that many modifications are possible in theexemplary embodiments without materially departing from thenovel teachings and advantages of this invention. Accordingly, allsuch modifications are intended to be included within the scope ofthis invention.
Industrial ApplicabilityThe broadcast receiving apparatus relevant to the presentinvention realizes more detailed device management by providingthe program operating on the broadcast receiving apparatus with a means for the connection/connection cancellation of devices presentin a broadcast receiving apparatus. It enables the operation of amore high-functioned program on an information processingapparatus such as, a broadcast receiving apparatus such as a digitaltelevision, a personal computer, a mobile phone, and an apparatusthat performs processing of data within recording media.