Abstract:
This invention relates to an information-processing apparatus for transmitting streaming data through a network, including: an addition element for adding information used for carrying out processing on streaming data to the streaming data; a storage element for storing the streaming data and the information added to the streaming data by the addition element; and a transmission element for transmitting the streaming data which is stored by the storage element and which includes the information.

Description:
BACKGROUND OF THE INVENTION 
   In general, the present invention relates to an information-processing apparatus, an information-processing method, a network system, and a program. More specifically, the present invention relates to an information-processing apparatus, an information-processing method, a network system, and a program, which can exchange streaming data without regard to the type of the compression and decompression technique of the streaming data by addition of a program to be executed for carrying out processing on the streaming data to the streaming data and transmission of the program along with the streaming data. 
   There are many servers for distributing streaming data such as audio data and moving-picture data, which can be displayed in a real-time manner while the data is being received through the Internet. Picture or audio information is input through a video camera and a microphone and converted into data by a video-capture card and/or a sound card before being compressed by using an encoder. The compressed data is kept by a distribution server as a file of streaming data to be transmitted to a client as requested by the client on an on-demand basis. In addition to such an on-demand system, there is also provided a system in which compressed data is distributed to a plurality of clients at the same time. 
   In either system, while receiving distributed streaming data, a client uses a decoder conforming to the technique of compressing the received streaming data to decompress the data before outputting the data to a display unit and/or a speaker. 
   However, there are a number of data compression and decompression techniques such as an MPEG (Moving Picture (coding) Expert Group) 2 or 4, MP3 (MPEG Audio Layer-3) and ATRAC (Adaptive Transform Acoustic Coding™). For this reason, the system described above has a problem that the client must have many decoders if the client receives various kinds of streaming data compressed by using a variety of compression techniques. 
   In addition, there is also raised a problem that the distribution server must adopt several different compression techniques for different kinds of streaming data in order to keep up with demands raised by a number of clients. 
   Moreover, a client can be a portable terminal such as a PDA (Personal Digital Assistant). In this case, since a space for a storage device and the storage capacity thereof are small in the portable terminal, it is difficult for the client to have a plurality of decoders. Thus, there is raised a problem that the portable terminal can be used only for handling streaming data compressed by adoption of a certain compression and decompression technique. 
   SUMMARY OF THE INVENTION 
   It is thus an object of the present invention addressing the problems described above to provide a capability of exchanging streaming data without regard to the type of the compression and decompression technique of the streaming data by addition of a program to be executed for carrying out processing on the streaming data to the streaming data and by transmission of the program along the streaming data. 
   According to a first aspect of the present invention, there is provided an information-processing apparatus for transmitting streaming data through a network, including: an addition element for adding information used for carrying out processing on streaming data to the streaming data; a storage element for storing the streaming data and the information added to the streaming data by the addition element; and a transmission element for transmitting the streaming data which is stored by the storage element and which includes the information. 
   According to a second aspect of the present invention, there is provided an information-processing method adopted by an information-processing apparatus for transmitting streaming data through a network, including: an addition step of adding information used for carrying out processing on streaming data to the streaming data; a storage step of storing the streaming data and the information added to the streaming data in the addition step; and a transmission step of transmitting the streaming data which is stored in the storage step and which includes the information. 
   According to a third aspect of the present invention, there is provided a program to be executed by a computer for controlling an information-processing apparatus for transmitting streaming data through a network, the program including: an addition step of adding information used for carrying out processing on streaming data to the streaming data; a storage step of storing the streaming data and the information added to the streaming data in the addition step; and a transmission step of transmitting the streaming data which is stored in the storage step and which includes the information. 
   According to a fourth aspect of the present invention, there is provided an information-processing apparatus for receiving streaming data through a network, including: a reception element for receiving streaming data to which information used in carrying out processing on the streaming data is added; a processing element for carrying out processing on the streaming data received by the reception element in accordance with the information added to the streaming data; and an output element for outputting a result of the processing carried out on the streaming data by the processing element. 
   According to a fifth aspect of the present invention, there is provided an information-processing method adopted by an information-processing apparatus for receiving streaming data through a network, including: a reception step of receiving streaming data to which information used in carrying out processing on the streaming data is added; a processing step of carrying out processing on the streaming data received in the reception step in accordance with the information added to the streaming data; and an output step of outputting a result of the processing carried out on the streaming data in the processing step. 
   According to a sixth aspect of the present invention, there is provided a program to be executed by a computer for controlling an information-processing apparatus for receiving streaming data through a network, the program including: a reception step of receiving streaming data to which information used in carrying out processing on the streaming data is added; a processing step of carrying out processing on the streaming data received in the reception step in accordance with the information added to the streaming data; and an output step of outputting a result of the processing carried out on the streaming data in the processing step. 
   According to a seventh aspect of the present invention, there is provided a network system including a first information-processing apparatus connected to a network and used for transmitting streaming data and a second information-processing apparatus connected to the network and used for receiving the streaming data, wherein the first information-processing apparatus includes: an addition element for adding information used for carrying out processing on streaming data to the streaming data; a storage element for storing the streaming data and the information added to the streaming data by the addition element; and a transmission element for transmitting the streaming data, which is stored by the storage element and includes the information, and wherein the second information-processing apparatus includes: a reception element for receiving streaming data to which information used in carrying out processing on the streaming data is added; a processing element for carrying out processing on the streaming data received by the reception element in accordance with the information added to the streaming data; and an output element for outputting a result of the processing carried out on the streaming data by the processing element. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above and other objects, features and advantages of the present invention will be apparent from the following detailed description of the preferred embodiment of the invention in conjunction with the accompanying drawings, in which: 
       FIG. 1  is a diagram showing a typical configuration of a network system to which the present invention is applied; 
       FIG. 2  is a block diagram showing the configuration of a distribution server shown in  FIG. 1 ; 
       FIG. 3  is a block diagram showing the configuration of a PDA shown in  FIG. 1 ; 
       FIG. 4  is a flowchart representing distribution processing carried out by the distribution server to transmit streaming data to the PDA shown in  FIG. 1 ; 
       FIG. 5  is a diagram showing a typical configuration of an RTP packet; 
       FIG. 6  is a flowchart representing streaming-data reception processing carried out by the PDA shown in  FIG. 1 ; 
       FIG. 7  is an explanatory diagram used for describing processing carried out by a CPU shown in  FIG. 3  on decoder data using a RAM to acquire a decoder; 
       FIG. 8  is an explanatory diagram used for describing processing carried out by the CPU shown in  FIG. 3  on decoder data using the RAM to create a decoder; 
       FIG. 9  is an explanatory diagram used for describing processing carried out by the CPU shown in  FIG. 3  on decoder data using the RAM to decompress MPEG4 data by using a decoder; and 
       FIG. 10  is an explanatory diagram used for describing processing to decode MPEG4 data by execution of a decoder program written in Java®. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 1  is a diagram showing a typical configuration of a network system to which the present invention is applied. 
   A distribution server  1  for distributing streaming data is connected to the Internet  2  A PDA (Personal Digital Assistant)  3  receiving streaming data distributed by way of the Internet  2  is also connected to the Internet  2 . While the figure shows only one distribution server  1  and one PDA  3 , in actuality, a plurality of such servers and a plurality of PDAs may be connected to the Internet  2 . 
     FIG. 2  is a block diagram showing the configuration of the distribution server  1 . 
   A CPU (Central Processing Unit)  11  shown in  FIG. 2  carries out various kinds of processing by execution of programs stored in advance in a ROM (Read-Only Memory)  12  or programs loaded from a storage unit  23  into a RAM (Random-Access Memory)  13 . The RAM  13  is also appropriately used for storing, among others, data required in carrying out the various kinds of processing. The CPU  11 , the ROM  12  and the RAM  13  are connected to each other by a bus  14 . An input/output interface  20  is also connected to the bus  14 . 
   The input/output interface  20  is connected to an input unit  21 , an output unit  22 , the storage unit  23  and a communication unit  24 . The input unit  21  includes a keyboard and a mouse. The output unit  22  includes a display unit such as a CRT (Cathode Ray Tube) or an LCD (Liquid-Crystal Display) and a speaker. The storage unit  23  includes a hard disc or the like. The communication unit  24  includes a modem and a terminal adapter. 
   The storage unit  23  is used for storing streaming data for distribution. The streaming data for distribution includes MPEG4 data (Moving Picture (coding) Expert Group 4 data) obtained as a result of compression of moving-picture data and decoder data, which is a program functioning as a decoder for decompressing (decoding) the MPEG4 data. 
   The communication unit  24  carries out processing of communication through the Internet  2 . The communication unit  24  distributes the streaming data stored in the storage unit  23  for distribution by using an RTP (Real-Time Transport Protocol)/RTSP (Real-Time Streaming Protocol) protocol. 
   If necessary, the input/output interface  20  is also connected to a driver  30 . On the driver  30 , there is mounted a magnetic disc  41 , an optical disc  42 , a magneto-optical disc  43  or a semiconductor memory  44 . A computer program read out from the magnetic disc  41 , the optical disc  42 , the magneto-optical disc  43  or the semiconductor memory  44  is installed in the storage unit  23 . 
     FIG. 3  is a block diagram showing the configuration of the PDA  3 . As shown in the figure, the PDA  3  includes components ranging from a CPU  111  to a semiconductor memory  144 , which correspond to respectively the CPU  11  to the semiconductor memory  44  in the distribution server  1 . Since the basic configuration of the PDA  3  is the same as the distribution server  1 , its explanation is not repeated. 
   At a request made by the PDA  3 , the distribution server  1  transmits streaming data to the PDA  3 .  FIG. 4  is a flowchart representing distribution processing carried out by the distribution server  1  to transmit streaming data to the PDA  3 . This distribution processing is explained by referring to a flowchart shown in  FIG. 4  as follows. 
   As shown in the figure, the flowchart begins with a step S 1  at which the CPU  11  employed in the distribution server  1  controls the communication unit  24 , forming a judgment as to whether or not a request for transmission of streaming data has been received from the PDA  3 . If the outcome of the judgment indicates that such a request has not been received, the judgment is formed repeatedly till the outcome of the judgment indicates that a request has been received. If the CPU  11  determines that a request for transmission of streaming data has been received from the PDA  3 , the flow of the distribution processing goes on to a step S 2 . 
   At the step S 2 , the CPU  11  transmits decoder data of the streaming data specified in the transmission request received from the PDA  3  to the PDA  3 . 
     FIG. 5  is a diagram showing a typical configuration of an RTP packet containing decoder data or streaming data to be transmitted. 
   As shown in the figure, an RTP packet includes a fixed-length header  200  and a data portion  220  containing streaming data to be transmitted. 
   The header  200  of an RTP packet includes version bits  201 , a padding bit  202 , an extension bit  203 , a CSRC (contributing source)  210  which indicates IDs (identifiers) of sender parties, a CSRC count  204 , a marker  205 , a payload type  206 , a sequence number  207 , a time stamp  208 , and a SSRC (synchronization source)  209 . The version bits  201  show a version of the RTP. The padding bit  202  set at 1 indicates that at least a padding octet is inserted into the end of the packet. The extension bit  203  indicates the existence of an extension. The CSRC count  204  is the number of IDs of the sender parties cataloged in the CSRC  210 . The payload type  206  is the type of data to be transmitted. The sequence number  207  is used for detecting a lost packet for a case in which data is recovered in accordance with an order. The time stamp  208  is used for recording a time. The SSRC  209  is the ID of a sender. 
   On the other hand, the data portion  220  includes a start packet bit  221 , an end packet bit  222 , a data length  223  and streaming data  224 . When set, the start packet bit  221  indicates that this packet is the first packet of data to be transmitted. By the same token, when set, the end packet bit  222  indicates that this packet is the last packet of data to be transmitted. The data length  223  indicates the length of data contained in this packet. The streaming data  224  is data to be transmitted. 
   The CPU  11  employed in the distribution server  1  transmits decoder data to the PDA  3  as described above in the form of packets shown in  FIG. 5 . In this case, the CPU  11  sets PLUG_IN in the payload type  206  and fills the streaming data  224  with the decoder data. As the transmission of the decoder data is completed, the flow of the distribution processing goes on to a step S 3 . 
   At the step S 3 , the CPU  11  transmits MPEG4 data also in the form of packets shown in  FIG. 5  to the PDA  3 . The MPEG4 data is obtained as a result of compression of the streaming data desired by the PDA  3  in the request for transmission. In this case, the CPU  11  sets MPEG4 in the payload type  206  and fills the streaming data  224  with the streaming data. As the transmission of the streaming data is completed, the distribution processing is ended. 
   The transmitted RTP packets are received by the PDA  3 , which made the request for transmission of data. 
     FIG. 6  is a flowchart representing reception processing carried out by the PDA  3  to receive streaming data from the distribution server  1 . This reception processing is explained by referring to the flowchart shown in  FIG. 6  as follows. 
   As shown in the figure, the flowchart begins with a step S 21  at which the CPU  111  employed in the PDA  3  controls the communication unit  124  to transmit a request for transmission of streaming data to the distribution server  1  by way of the Internet  2 . 
   Then, at the next step S 22 , the CPU  111  controls the communication unit  124  to receive the RTP packet from the distribution server  1 . The CPU  111  then refers to the payload type  206  of the header  200  of the received RTP packet. The payload type  206  is found out to be PLUG 13  IN, indicating that the RTP packet contains decoder data. Thus, the CPU  111  acquires the decoder data from the RTP packet. 
     FIG. 7  is an explanatory diagram used for describing processing of the decoder data using the RAM  113 . The CPU  111  stores the acquired decoder data in a playback area  301  of the RAM  113 . The decoder data is accumulated and assembled in the playback area  301 . The CPU  111  carries out the processing to acquire data, beginning with a first packet having a set start packet bit  221  and ending with a last packet having a set end packet bit  222 . 
   As the CPU  111  acquires the last packet, the flow of the reception processing goes on to a step S 23  at which a decoder  302  is created in the RAM  113 .  FIG. 8  is an explanatory diagram used for describing processing of data using the RAM  113 . The CPU  111  forms the decoder  302  assembled in the playback area  301  in another area of the RAM  113 . 
   When the CPU  111  completes the creation of the decoder  302 , the flow of the reception processing goes on to a step S 24  at which the CPU  111  controls the communication unit  124  to start processing to receive other RTP packets containing MPEG4 data from the distribution server  1 . The CPU  111  then refers to the payload type  206  of the header  200  of a received RTP packet. The payload type  206  is found out to be MPEG4, indicating that the RTP packet contains streaming data. Thus, the CPU  111  acquires the streaming data from the RTP packet. 
   After the CPU  111  starts the acquisition of MPEG4 data, the flow of the reception processing goes on to a step S 25  to form a judgment as to whether or not the acquisition of the MPEG4 data, that is, the streaming data, has been completed. If the outcome of the judgment indicates that the acquisition of the MPEG4 data has not been completed as evidenced by the fact that a last packet having a set end packet bit  222  has not been received, the reception processing goes on to a step S 26  at which the CPU  111  decompresses the acquired MPEG4 data by using the decoder  302 , converting the data into picture data. As the processing to convert the MPEG4 data into picture data is completed, the flow of the reception processing goes on to a step S 27  at which the picture data obtained as a result of the conversion processing is supplied to the output unit  122  to be displayed on the display unit. 
   Then, at the next step S 28 , the CPU  111  receives a new packet and acquires MPEG4 data from the new packet. After the CPU  111  acquires the MPEG data, the flow of the reception processing goes back to the step S 25  to repeat processing of the step and the subsequent steps. 
     FIG. 9  is an explanatory diagram used for describing processing of the MPEG4 data using the RAM  113 . The CPU  111  supplies the acquired MPEG4 data to the playback area  301  of the RAM  113  through the decoder  302 , which decompresses the MPEG4 data. Then, the CPU  111  supplies picture data obtained as a result of decompression of the MPEG4 data to the output unit  122  by way of the playback area  301  to be displayed on the display unit. 
   As the outcome of the judgment formed at the step S 25  indicates that the acquisition of the MPEG4 data is completed as evidenced by the fact that a last packet having a set end packet bit  222  has been received, the reception processing goes on to a step S 29  at which the CPU  111  deletes the decoder  302  created in the RAM  113  from the RAM  113 . As the deletion is completed, the CPU  111  ends the reception processing. 
   By carrying out the processing described above, streaming data can be exchanged by any apparatus without regard to the type of the compression and decompression technique. 
   In addition, by execution of a decoder program written in Java®, streaming data can be created without regard to the type of the CPU on the reception side. Thus, the distribution server  1  can further reduce the amount of streaming data stored in the storage unit  23 . 
   In this case, a VM (Virtual Machine)  311  for Java® is required in order to execute the decoder.  FIG. 10  is an explanatory diagram used for describing processing to decode MPEG4 data by execution of a decoder program written in Java®. As shown in  FIG. 10 , the decoder  312  created in the RAM  113  exchanges data with the playback area  301  through the VM  311  for Java® in order to carry out processing to decode MPEG4 data. 
   In the embodiment described above, streaming data once kept in the distribution server  1  is transmitted to a client at a request made by the client on an on-demand basis. However, the scope of the present invention is not limited to this embodiment. For example, streaming data can also be transmitted to a client in a real-time manner or distributed to a plurality of clients at the same time. 
   In addition, while the storage unit  23  employed in the distribution server  1  as shown in  FIG. 2  is used for storing streaming data consisting of MPEG4 data obtained as a result of compression of picture data and decoder data used as a decoder for decompressing the MPEG4 data, the scope of the present invention is not limited to this scheme. For example, the MPEG4 data and the decoder can be kept in separate files and, when the MPEG4 data and the decoder are transmitted, they are combined. 
   In the above description, PLUG_IN or MPEG4 is set in the payload type  206  shown in  FIG. 5 . In actuality, however, predetermined numbers are set in place of PLUG_IN or MPEG4. That is to say, PLUG_IN or MPEG4 do not have to be set in the payload type  206  for decoder data or MPEG4 data respectively. 
   In the embodiment described above, distributed data is MPEG4 moving-picture data. However, the distributed data is not limited to MPEG4 moving-picture data. For example, distributed data can also be MPEG2 moving-picture data, MP3 (MPEG Audio Layer-3) musical data or ATRAC (Adaptive Transform Acoustic Coding™) musical data. 
   In addition, while distributed streaming data is explained in this specification as data consisting of MPEG4 data obtained as a result of compression of picture data and decoder data used as a decoder for decompressing the MPEG4 data, the scope of the present invention is not limited to this scheme. For example, the streaming data may also include encrypted MPEG4 data and a descrambler for descrambling the encrypted MPEG4 data. 
   Furthermore, the distribution server  1  may also include a program in the streaming data. The program is to be executed to carry out degradation processing on the streaming data on the basis of copy information specified at a copy time of the streaming data. 
   Moreover, when a relay station or the like is used in the distribution of streaming data, the relay station transforms the streaming data into a bit rate proper for the network, through which the streaming data is to be distributed. In this case, in order to make the streaming data distributable, the distribution server may include an encoder for carrying out an encoding process proper for the streaming data or a transcoder for carrying out transcoding in the distributed streaming data. 
   In addition, when a relay station or the like is used in the distribution of streaming data, in order to make the relay station capable of encrypting and distributing the streaming data, the distribution server may include a scrambler for scrambling or a descrambler for descrambling in the distributed streaming data. 
   Furthermore, the client to which the present invention is applied is not limited to a PDA, but can also be a mobile phone, a game terminal or a personal computer. 
   If the sequential processing is implemented by software, programs composing the software are installed from a network or a recording medium in a computer including embedded dedicated hardware or another computer such as a general-purpose personal computer capable of carrying out a variety of functions by execution of a variety of programs installed in the personal computer. 
   As show in  FIGS. 2 and 3 , the recording medium for recording programs to be installed in the computer including embedded dedicated hardware or the general-purpose personal computer can be a package medium such as the magnetic disc  41  or  141  including a floppy disc, the optical disc  42  or  142  including a CD-ROM (Compact-Disc Read-Only Memory) and a DVD (Digital Versatile Disc), the magneto-optical disc  43  or  143  including an MD (MiniDisc) or the semiconductor memory  44  or  144 . Provided separately from the main unit of the distribution server  1  or the PDA  3 , the package medium is distributed to users to present the programs recorded therein to the users. 
   Instead of installing the programs in the computer including embedded dedicated hardware or the general-purpose personal computer from a package medium or a network, the programs can also be stored in advance the ROM  12  or  112  embedded along with the CPU  11  or the CPU  111  in the distribution server  1  or the PDA  3  respectively. 
   It should be noted that, in this specification, steps composing a program recorded in a recording medium include mainly pieces of processing to be executed sequentially in accordance with a predetermined order along the time axis. However, the steps are not necessarily the pieces of processing to be executed sequentially. Instead, the steps may include pieces of processing to be executed concurrently or individually. 
   In addition, the technical term ‘network system’ used in this specification means the entire system including a plurality of apparatus. 
   In accordance with the present invention, a first information-processing apparatus, first information-processing method, and first program, streaming data is stored along with information (decoder) added to the streaming data to be used in processing carried out on the streaming data, and the streaming data including the information is transmitted. As a result, the distributed streaming data can be regarded as data of one type. 
   In accordance with the present invention, a second information-processing apparatus, second information-processing method, and second program, streaming data is received along with information (decoder) added to the streaming data to be used in processing carried out on the streaming data, the streaming data is processed in accordance with the information and a result of the processing carried out on the streaming data is output. As a result, it is not necessary to provide a decoder in advance. 
   In the network system provided by the present invention, the first information-processing apparatus transmits streaming data including information (decoder) added to the streaming data to be used in processing carried out on the streaming data, and the second information-processing apparatus receives the streaming data along with information (decoder), carrying out processing on the streaming data in accordance with the information before outputting a result of the processing carried out on the streaming data. As a result, streaming data can be exchanged without regard to the type of the technique for compressing and decompressing the streaming data.