This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2004-213609, filed Jul. 21, 2004, the entire contents of which are incorporated herein by reference.
1. Field
One embodiment of the invention relates to an electronic device with a communication unit that receives data from an external device.
2. Description of the Related Art
In recent years, users enjoy watching television broadcasts on displays of electronic devices such as personal computers and the like, that receive those broadcasts from broadcasting stations. Generally, a user turns on the power for the device and frequently switches channels corresponding to the broadcasting stations.
In the electronic device such as the personal computer described above, when the channel is changed, the moving picture is often discontinuous, and it takes time for the moving picture output of the new channel to be properly displayed. This causes the user to experience a feeling of visual discomfort. This situation is particularly likely to occur in electronic devices that receive television broadcast programs via a network from an external device on which a tuner is installed.
Japanese Patent Application Publication (KOKAI) No. 2001-285736 (hereinafter “publication”) discloses one example of the technology for reducing the discomfort to the user at the time of switching channels. According to this publication, the technology disclosed therein eliminates the freezing of the display screen that occurs at the time of channel switching. In particular, in the case where channel switching from program 1 that is first channel to program 2 that is second channel occurs due to an operation by the user, time is required for a first tuner to select the transport waves to switch channels to receive and to decode standard resolution picture signals. To avoid the freezing of the display screen during this time period, a low resolution picture signal is obtained by a second tuner decoded and output onto the display.
However in the technology disclosed in the publication, two tuners and a switch are required to avoid the freezing of the display screen during switching of channels.
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention, and together with the detailed description of the embodiments given below, serve to explain the features of the embodiments of the invention.
Various embodiments of the invention will be described hereinafter with reference to the accompanying drawings. In general, according to one embodiment of the invention, an electronic device comprises a communication unit to receive one of a first data in a first external data source and a second data in a second external data source through a communication path, an interface to receive a request to connect to the second external data source, and a control unit. In the case that the communication unit receives the first data through the communication path when the interface receives the request, the control unit prepares a communication-ready path, which is ready to communicate, with the second external data source while the communication path is maintained, terminates the communication path after preparation for the communication-ready path, and changes the communication-ready path to the communication path to receive the second data.
The communication system comprises an HTTP server device 1 and at least one HTTP client device 2. The HTTP server device 1 includes a built-in TV tuner. The HTTP server device 1 and the HTTP client device 2 may be connected by a Local Area Network (hereinafter “LAN”), such as a wireless LAN or a wired LAN. While only one HTTP client device 2 is illustrated in
The HTTP server device 1 may be realized as an access point or a personal computer, and may perform data transfer processing in compliance with a Hyper Text Transfer Protocol (“HTTP”). The HTTP server device 1 dynamically creates video data, which includes sound data attached thereto, of programs broadcasted from a TV broadcasting station according to a connection request from the HTTP client device 2. The connection request includes a video data transfer request. The HTTP server device 1 also transfers the video data associated with the connection request to the HTTP client device 2.
In the case where there is another connection request from the same HTTP client device 2 while the video data is being transferred, the HTTP server device 1 stops the video data transfer that was performed up until that point, executes disconnection, and executes the requested connection.
The HTTP client device 2 may be realized by, for example, a personal computer, and performs data transfer processing in compliance with the Hyper Text Transfer Protocol (HTTP). The HTTP client device 2, as described later, may include a recording device or a memory that stores a list of data indicating the relationship between the TV channel and the Uniform Resource Locator (hereinafter “URL”). The TV channel corresponds to the TV broadcasting station. When making a connection request, the HTTP client device 2 outputs the connection request specifying the URL corresponding to the TV channel to the HTTP server device 1, and obtains video data for the desired TV channel.
The HTTP server device 1 may include a TV antenna 11, a TV tuner 12, a data creation unit 13, a communication unit 14, an antenna 15 for wireless communication, a recording device 16, memory 17, and a control unit 18.
The TV antenna 11 receives electromagnetic waves from a TV broadcasting station and converts the electromagnetic waves into electric signals and sends them to the TV tuner 12.
The TV tuner 12 performs tuning processing based on the electric signals received from the TV antenna 11.
The data creation unit 13 creates video data for broadcasts from the electrical signals processed by the TV tuner 12. The data creation unit 13 functions as data sources, providing video data corresponding to TV broadcasting stations, respectively. Each of the data sources may be specified by individual URLs.
The communication unit 14 performs wireless communication in compliance with a wireless LAN, such as IEEE802.11a, IEEE802.11b, or IEEE802.11g, for example. During the wireless communication, the communication unit 14 receives connection requests from the HTTP client device 2, and then performs the requested connection processing to establish a communication path. After the communication path is established, the video data created by the data creation unit 13 is sent to the HTTP client device 2.
The antenna 15 sends and receives electromagnetic signals to and from the HTTP client device 2.
The recording device 16 is a nonvolatile recording device using a nonvolatile medium, such as a Hard Disc drive (hereinafter “HDD”) or a digital versatile disc drive (hereinafter “DVD”) or the like. The recording device 16 stores the programs and data necessary for the operation of the control unit 18.
The memory 17 is a volatile memory such as RAM or the like, and is used as the work area for the control unit 18 that executes programs and the like.
The control unit 18 is a CPU in one embodiment of the invention, and controls all the operations of the HTTP server device 1. For example, the control unit 18 retrieves the corresponding TV channel based on the URL indicated in the connection request that is sent from the HTTP client device 2, and tunes the TV tuner 12 to that TV channel.
The HTTP client device 2 comprises an antenna 21 for wireless communication, a communication unit 22, a data reproducing unit 23, a speaker 24, a display unit 25, an operation unit 26, a recording device 27, memory 28, and a control unit 29.
The antenna 21 sends and receives electromagnetic signals to and from the HTTP server device 1.
The communication unit 22 performs wireless communication in compliance with a wireless LAN, such as IEEE802.11a, IEEE802.11b, or IEEE802.11g, for example. During the wireless communication, the communication unit 22 outputs connection requests to the HTTP server device 1 and receives transmitted video data. The communication unit 22, according to one embodiment of the invention, is capable of establishing a communication path that may receive video data from the HTTP server device 1, and is further capable of preparing a communication-ready path. Communication path refers to a condition under which the HTTP client device 2 is able to receive video data and request a video data transfer. The communication-ready path refers to a logic path, which is logically connected with the HTTP server device 1 and is on standby for a video data transfer request for the HTTP server device 1.
In other words, the communication-ready path is ready to communicate, but has not started to communicate yet. As the communication-ready path is a logic path, the communication-ready path is on standby without a video data transfer request being performed. After the communication path is established, and/or the communication-ready path is changed to the communication path, video data may be received, perhaps immediately, by the HTTP client device 2. The HTTP client device 2 does not receive video data through the communication-ready path.
The data reproducing unit 23 comprises an MPEG decoder, and decodes the video data received by the communication unit 22, and separates and outputs video data and sound data.
The speaker 24 outputs sound based on the sound data. The display unit 25 displays video data, as well as operation screens from TV application programs for viewing programs from TV broadcasts. The operation unit 26 is a man-machine interface, and may include a mouse, a keyboard, a keyboard controller, and/or an IR receiver that receives IR signals from a remote controller (not shown). The operation unit 26 is used for instructing the start of viewing TV broadcasting program, TV channel selecting and/or changing, or the end of viewing. In other words, the operation unit 26 receives a request or an instruction to, for example, change the current TV channel to a certain TV channel, or connect to a certain data source in the data creating unit 13 in the HTTP server device 1.
The recording device 27, such as a HDD or a DVD or the like, is a nonvolatile recording device using a nonvolatile medium. The recording device 27 stores the programs and data necessary for the operation of the control unit 29. In one embodiment of the invention, the recording device 27 stores a list of data indicating the relationship between the TV channels and the URLs.
The memory 28 is a volatile memory, such as RAM and the like, and is used as the work area of the control unit 29 for executing programs and the like.
The control unit 29 may be a CPU, and it controls all the operations of the HTTP client device 2. For example, the control unit 29 refers to the list stored in the recording device 27 when a request to change a TV channel or to connect to a certain data source is input via the operation unit 26, and specifies the URL indicating the data source corresponding to the particular TV channel. Then, the control unit 29 instructs the communication unit 22 to perform the connection request.
According to one embodiment of the invention, when a TV channel switching operation is to be performed in the state where the communication path has been established and the HTTP client device 2 is receiving video data from the HTTP server device 1, the control unit 29 controls the preparation of a communication-ready path (logic path) which is logically connected with the HTTP server device 1 and is on standby for making a video data transfer request to the HTTP server device 1. Then, the control unit 29 terminates the existing communication path between the HTTP server device 1 and the HTTP client device 2, subsequent to disconnection of the communication path by the HTTP server device 1. Next, the control unit 29 changes the communication-ready path (logic path) into a communication path to receive new video data. In other words, the control unit 29 makes a video data transfer request that the communication-ready path (logic path) is on standby.
When a user specifies channel 1 by operating the operation unit 26, the operation unit 26 of the HTTP client device 2 receives and detects a request related to the specification of channel 1 (Operation S1). The control unit 29 of the HTTP client device 2 transfers MAIN CONNECTION REQUEST (hereinafter “MCR”) including the URL corresponding to channel 1 to the HTTP server device 1 through the communication unit 22 (Operation S2). It is to be noted that the MCR is equivalent to the request for establishing the above-described communication path.
The communication unit 14 of the HTTP server device 1 receives the MCR (Operation S3), and establishes the communication path, which is under a condition of main connection, in accordance with the request. Thereafter, the HTTP server device 1 transmits the program for channel 1 to the HTTP client device 2 (Operation S4). As a result, the HTTP client device 2 reproduces the program for channel 1 and displays the output (Operation S5).
In the following description, consider an example that the user has performed the operation for switching from channel 1 to channel 4.
In this case, a user operates the operation unit 26 to input a request to change the channel from channel 1 to channel 4, to connect to a data source of channel 4. The operation unit 26 of the HTTP client device 2 receives and detects the request to change the channel including the specification of channel 4 (Operation S6). The control unit 29 performs a SUB CONNECTION REQUEST (hereinafter “SCR”), including the URL corresponding to channel 4, to the HTTP server device 1 through the communication unit 22 (Operation S7). It is to be noted that an SCR is equivalent to requesting the preparation and formation of the above-described communication-ready path.
The HTTP server device 1 receives the SCR (Operation S8), and prepares and establishes the communication-ready path by a sub connection, in accordance with the request. Thereafter, the control unit 29 of the HTTP server device 1 disconnects the main connection, transmitting program (video data) for channel 1 (Operation S9). It is to be noted that the HTTP server device 1 continues to send the program (video data) for channel 1 until the current main connection is disconnected.
The control unit 29 of the HTTP client device 2 detects disconnection of the existing main connection, and discards and terminates the main connection (Operation S10). This means termination of the current communication path. Then, the control unit 29 performs a request or an instruction given for the current sub connection to be changed to the main connection by the HTTP server device 1 (Operation S11). That is that the communication-ready path is changed to the communication path, and video data transfer starts accordingly.
The HTTP server device 1 receives the change request from the sub connection to the main connection (Operation S12), and changes the sub connection to the main connection in accordance with the request. In this way, the communication path for channel 4 has been established. Thereafter, the HTTP server 1 starts to send the program for channel 4 to the HTTP client device 2 through the communication path (Operation S13). As a result, the HTTP client device 2 reproduces the program for channel 4 and displays the output (Operation S14).
The upper part of
The lower part of
As a result, according to embodiments of the invention, the time it takes for switching from channel 1 to channel 4 is reduced by at least T seconds when compared to the switching method without the sub connection.
An HTTP data transfer thread 31 transfers data based on HTTP and performs control thereof. The HTTP data transfer thread 31 secures a buffer memory region 32 for use in the processing of the video data, and controls the processing for display output of the video data sent from the HTTP server device 1, via the buffer memory region 32, the driver 33 and the application 34. Also, the HTTP data transfer thread 31 starts and ends video data transfer processing and performs the channel switching in response to an instruction or a request (hereinafter collectively referred to as “instruction”), from a user. The instruction from the user is received through the application 34 and the operation unit 26.
The buffer memory region 32 is a region formed in memory 28 of
The driver 33 performs control for the display and output of video data sent from the HTTP server device 1 via the application 34, and informs the management proxy 35 of the content of the instructions that the user provides via the operation unit 26 and the operation screen provided by the application 34.
The application 34 is a TV application program that the user uses for viewing TV broadcast programs. The application 34 displays the video data for the TV broadcast program and the operation screen and the like in a predetermined window. To view a certain TV broadcast program, the user inputs the instruction into the operation screen by operating the mouse or the keyboard of the operation unit 26.
The management proxy 35 receives the content of the instruction given by the user via the application 34. The instruction includes instructions for start and end of viewing and channel changes and the like. The management proxy 35 informs the HTTP data transfer thread 31 of the content of the instruction in the form of signals. Examples of the data information to be communicated by the management proxy 35 to the HTTP data transfer thread 31 include the start command for data transfer, loop end signals, channel changing signals and the like.
The HTTP data transfer thread 31 comprises loop end signal information (S-End) 41, channel changing signal information (S-Change) 42, and channel changing flag (F-change) 43.
The loop end signal information 41 is set to ON or OFF based on the loop end signal sent by the management proxy 35. The loop end signal indicates whether there is an instruction for data transfer ending. When there is an instruction for end of data transfer, the loop end signal information 41 is set to ON. It is to be noted that the loop end signal 41 is set to OFF at the time of the initialization setting.
The channel changing signal information 42 is set to ON or OFF based on the channel changing signal sent by the management proxy 35. The channel changing signal indicates whether or not there is an instruction for changing the channel. Changing the channel includes meanings of setting a certain channel and/or of connecting to a certain External data source. When there is an instruction for changing the channel, the channel changing signal information 42 is set to ON. It is to be noted that the channel changing signal information 42 is set to OFF at the time of initialization setting, and also set to OFF when the sub connection is performed.
The channel changing flag 43 indicates whether the channel changing instruction is in the processing state. In other words, the channel changing flag 43 indicates whether or not a sub connection for a communication-ready path exists. If the channel changing instruction is in the processing state, the communication-ready path is provided by the sub connection and the channel changing flag 43 is set to ON. It is to be noted that the channel changing flag 43 is typically set to OFF when the sub connection for the communication-ready path is changed to a main connection for a communication path.
The following describes exemplary operation of the HTTP data transfer thread 31 illustrated in
The HTTP data transfer thread 31 receives a start command for data transfer (Block S21), and establishes a communication path by a main connection with the HTTP server device 1 (Block S22). At that time, the HTTP data transfer thread 31 secures the buffer memory region (Block S23). The HTTP data transfer thread 31 then performs initialization processing by setting the loop end signal information 41 and the channel changing signal 42 to OFF (Block S24) and then setting the channel changing flag 43 to OFF (Block S25).
Next, the HTTP data transfer thread 31 determines whether the loop end signal information 41 is ON or OFF (Block S26). If it is ON, the data transfer process ends (Block S27). On the other hand, if it is OFF, a determination is made as to whether the channel changing flag 43 is ON or OFF (Block S28).
If the channel changing flag 43 is ON in Block S28, then the process goes to Block S33 illustrated in
If the channel changing signal information 42 is ON in Block S29, a sub connection for a communication-ready path with the HTTP server device 1 is prepared and performed (Block S30), the channel changing flag 43 is set to ON (Block S31), and the channel changing signal 42 is set to OFF (Block S32). The process then goes to perform the operations of Block S33 as illustrated in
However, if the channel changing signal information 42 is OFF in Block S29, then Block S33 illustrated in
At Block S33 illustrated in
If the channel changing flag 43 is OFF in Block S35, then it is assumed that there was some kind of obstacle and a predetermined error processing is performed (Block S38). On the other hand, if the channel changing flag 43 is ON, the current existing communication path by the main connection is discarded, and the communication-ready path provided by the sub connection is changed to the communication path provided by the main connection (Block S36). The channel changing flag 43 is then set to OFF (Block S37), and the process is repeated from Block S26.
In this manner, when there is an instruction for channel changing, the disconnection of the main connection is not performed immediately, but rather the communication-ready path by the sub connection for the channel to which the change will be made is prepared. In addition, immediately after disconnection of the main connection of channel 1 by the HTTP server device 1 is performed, the communication-ready path by the sub connection for the channel to which the change will be made becomes the communication path by the main connection. Thus, it appears that the time for switching channels is shortened, and the visual discomfort to a user is reduced.
It is to be noted that in this exemplary embodiment, the HTTP server device 1 and HTTP client device 2 are physically separate devices, but the present invention is not to be limited to this example, and the configuration may, for instance, may be such that the HTTP server device 1 and the HTTP client device 2 form the same device.
In addition, in the example of the above embodiment, the video data obtained directly from the TV tuner is sent from the HTTP server device 1 to the HTTP client device 2 based on the request from the HTTP client device 2. However, the embodiments of the invention are not to be so limited. Video data for a TV program that has been recorded onto a recording medium for instance, may be read and then sent from the HTTP server device 1 to the HTTP client device 2.
The embodiments of the invention are not to be limited by the above-described embodiment of the invention. The structural elements may be modified without departing from the scope of the invention. Furthermore, various embodiments of the invention may be formed by suitably combining the multiple structural elements disclosed in the above-described embodiment. For example, some structural elements may be eliminated from those disclosed in the exemplary embodiment of the invention previously described. In addition, structural elements from other embodiments of the invention may be suitably combined.
Additional advantages and modifications will readily occur to those skilled in the art. Therefore, the embodiment of invention in its broader aspects is not limited to the specific details and representative embodiments shown and described herein. Accordingly, various modifications may be made without departing from the spirit or scope of the general inventive concept as defined by the appended claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
P2004-213609 | Jul 2004 | JP | national |