US20080222301A1 - Method for data distribution - Google Patents

Method for data distribution Download PDF

Info

Publication number
US20080222301A1
US20080222301A1 US12/068,389 US6838908A US2008222301A1 US 20080222301 A1 US20080222301 A1 US 20080222301A1 US 6838908 A US6838908 A US 6838908A US 2008222301 A1 US2008222301 A1 US 2008222301A1
Authority
US
United States
Prior art keywords
stream data
data
quality
request
distribution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/068,389
Inventor
Tadashi Takeuchi
Damien Le Moal
Shinya Kato
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to US12/068,389 priority Critical patent/US20080222301A1/en
Publication of US20080222301A1 publication Critical patent/US20080222301A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/35Network arrangements, protocols or services for addressing or naming involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address or functional addressing, i.e. assigning an address to a function
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level

Definitions

  • the present invention relates to a data distribution method, and more particularly to a stream data distribution method of redistributing data to compensate for lost stream data and changing the quality of stream data in accordance with a network load.
  • a stream data distribution method of compensating for lost stream data and changing the quality of stream data is known as disclosed in JP-A-11-184780.
  • This stream data distribution method disclosed in JP-A-11-184780 is used in a system having a distribution server and clients interconnected by a network.
  • the distribution server distributes stream data to a client over the network.
  • the client loads a received stream data in a reception buffer.
  • Stream data in the reception buffer is periodically read and displayed on a display.
  • the client refers to the state of the reception buffer in order to inspect whether there is stream data lost during network transfer. If there is a loss of stream data, the client transmits a redistribution request for lost stream data to the distribution server. Upon reception of the request, the distribution server executes a redistribution process for the requested stream data.
  • the client inspects whether the amount of stream data in the reception buffer becomes a predetermined amount or less and whether an occurrence probability of loss of stream data becomes a predetermined value or higher. If the data amount becomes the predetermined amount or less and the occurrence probability becomes the predetermined value or higher, the client transmits a quality change request to the distribution server. Upon reception of this request, the distribution server thins stream data to be transmitted thereafter in order to change the transmission rate (to lower a frame rate, i.e., time resolution).
  • the client is required to have a reception buffer of large capacity, resulting in an expensive client.
  • the client issues the redistribution request and quality change request to the redistribution server. If a network delay is large between the redistribution server and client, it takes a long time for redistributed data to arrive the client or for the rate change to be reflected, after the client transmits the redistribution request and quality change request. Therefore, unless the client prepares a reception buffer having a sufficient capacity, the reproduction process of reading the reception buffer starts or the underflow of the reception buffer occurs before arrival of redistributed data and reflection of a rate change.
  • a network bandwidth necessary for redistribution of stream data is broad.
  • stream data is redistributed by using the bandwidth of the network from the distribution server to the client.
  • the network bandwidth is consumed more than ideal redistribution of using the bandwidth of only the network between intermediate routers.
  • JP-A-11-184780 only the time resolution is lowered to change the quality of stream data. Even in the case that the image quality can be suppressed from being lowered if the space resolution is lowered, a degraded image quality on a display can be visually confirmed if the time resolution is lowered.
  • An object of the invention is to provide a stream data distribution method capable of reducing the capacity of a reception buffer to be prepared at a client, narrowing the bandwidth of a network necessary for redistribution, and changing the quality not only by lowering a time resolution but also by lowering a space resolution.
  • the invention provides a data distribution method which comprises the following steps.
  • This data distribution method assumes that a distribution server reads stream data from its auxiliary storage device and transmits it to a client.
  • a plurality of stream data sets having different qualities are stored in an auxiliary storage device readable from a distribution server, and the distribution server reads only the stream data having a certain quality and transmits it.
  • Relay servers are provided between the distribution sever and a client, and stream data to be relayed by a relay server is once buffered in an auxiliary storage device readable from the relay server.
  • the relay server When the relay server detects a loss of stream data, the relay server issues a redistribution of lost stream data to the distribution server or another relay server at the preceding stage.
  • the distribution server or relay server Upon reception of the redistribution request, the distribution server or relay server reads the stream data from the auxiliary storage device and redistributes it.
  • the distribution server Upon reception of the quality change request, the distribution server change the stream data to be read from the auxiliary storage device to thereby change the quality of stream data to be transmitted.
  • FIG. 1 is a block diagram showing the structure of a system according to a first embodiment of the invention.
  • FIGS. 2A to 2D show the formats of packets to be transferred between nodes.
  • FIG. 3 is a block diagram showing the overall structure of a distribution server of the embodiment.
  • FIG. 4 shows the structure of a distribution management table.
  • FIG. 5 shows the structure of stream data in an auxiliary storage device of the distribution server.
  • FIG. 6 shows the overall structure of a relay server.
  • FIG. 7 shows the structure of a relay management table.
  • FIG. 8 shows the structure of stream data in an auxiliary storage device of the relay server.
  • FIG. 9 shows the overall structure of a client.
  • FIG. 10 shows the structure of a system according to a second embodiment of the invention.
  • FIGS. 11A to 11D show the formats of packets to be transferred between nodes.
  • FIG. 12 shows the overall structure of a relay server of the second embodiment.
  • FIGS. 13A and 13B show the structure of a relay server management table.
  • FIG. 1 shows the structure of a system according to the first embodiment.
  • a distribution server 101 reads stream data from an auxiliary storage device 104 and transmits it.
  • a client 102 buffers the received stream data in a reception buffer 109 and displays it on a display 108 .
  • Stream data is transmitted in response to a distribution request from the client 102 .
  • the distribution request contains information of the quality of stream data to be distributed.
  • the distribution server 101 stores beforehand stream data having different qualities in the auxiliary storage device 104 , and reads only the stream data having the requested quality from the auxiliary storage device and transmits it to the client 102 .
  • the transmitted stream data is relayed by relay servers 103 to relay it to the client 102 .
  • the relay server 103 has stream data buffers 107 for buffering to some degree the received stream data in an auxiliary storage device 106 at its node.
  • the stream data buffers 107 are managed in the unit of each client. When the amount of data in the stream data buffer 107 becomes a predetermined amount or more, the stream data is sequentially read and transmitted to the client 102 .
  • the relay server 103 and client 102 refer to the stream data buffer 106 and reception buffer 109 and inspect whether there is a loss of stream data. If there is a loss, a data redistribution request is issued to the distribution server 101 or relay server 103 at the preceding stage.
  • the distribution server 101 or relay server 103 reads the data from the auxiliary storage device 105 or 106 .
  • the relay server 103 and client 102 refer to the stream data buffer 106 and reception buffer 109 and inspect whether the amount of buffered data in the buffer 106 becomes less than a predetermined amount and whether time index loss in the stream data becomes a predetermined value or higher. If the data amount is small or the occurrence probability is high, it is judged that the network is in an overload state, and a quality change request (a request of lowering the quality) is issued to the distribution server 101 or relay server 103 at the preceding stage. This request is sequentially relayed by each relay server 103 so that the request finally reaches the distribution server 101 . Thereafter, the distribution server 101 reads only the stream data having the newly requested quality from the auxiliary storage device 105 and transmits it to the client 102 .
  • the system having the structure shown in FIG. 1 has the following advantages:
  • the redistribution request process is executed between the subject node and adjacent distribution server or relay server. It is therefore possible to shorten the time from issuance of the redistribution request to arrival of redistributed stream data. Although the time from the quality change request to the actual quality change is the same as that of a conventional method, the capacity of a reception buffer to be prepared at the client can be made small because not only the client but also the relay server buffers the stream data.
  • the quality change can be performed not only by lowering the time resolution but also by lowering the space resolution.
  • FIGS. 2A to 2D show the formats of data to be transferred between nodes shown in FIG. 1 .
  • a format 201 of a packet storing a distribution request to be transmitted from a client to the distribution server has the following fields:
  • a “distribution server IP address” field for storing an IP address of the distribution server which is the transmission destination of the distribution request packet.
  • a “client IP address” field for storing an IP address of the client which is the transmission source of the distribution request packet.
  • a “quality level” field for storing a requested quality of stream data to be transmitted in response to the distribution request.
  • a format 202 of a packet storing stream data to be transmitted from the distribution server to a client has the following fields:
  • a “distribution server IP address” field for storing an IP address of the distribution server which is the transmission source of stream data.
  • a “client IP address” field for storing an IP address of the client which is the transmission destination of stream data.
  • a “quality level” field for storing a quality of stream data stored in the packet is a “quality level” field for storing a quality of stream data stored in the packet.
  • a “time index” field for storing a time index value of stream data stored in the packet.
  • the time index value is information indicating the time required to reproduce the stream data after the start of all the stream data was reproduced.
  • a “preceding stage server IP address” field for storing an IP address of the distribution server or relay server at the preceding stage which transmitted or relayed the stream data.
  • the distribution server sets the IP address of its node to this field.
  • the relay server renews this field to the IP address of its node. Namely, each node received this packet can recognize from this field the IP address of the distribution server or relay server at the preceding stage.
  • a “data size” field for storing the size of the stream data stored in the packet.
  • a format 203 of a packet storing a quality change request has the following fields:
  • a “distribution server IP address” field for storing an IP address of the distribution server which is the transmission source of stream data whose quality was requested to be changed.
  • a “client IP address” field for storing an IP address of the client which is the transmission destination of stream data whose quality was requested to be changed.
  • a “quality level” field for storing a newly requested quality of stream data.
  • a format 204 of a packet storing a redistribution request has the following fields:
  • a “command” field for storing data indicating that the packet is a redistribution request packet.
  • a “distribution server IP address” field for storing an IP address of the distribution server which is the transmission source of stream data which was requested to be redistributed.
  • a “time index” field for storing a time index value of stream data which was requested to be redistributed.
  • the structure of the distribution server will be described with reference to FIGS. 3 to 5 .
  • FIG. 3 shows the overall structure of the distribution server 101 .
  • the distribution server 101 has a distribution request processing module 301 , a transmission processing module 304 , a quality request processing module 302 , and a redistribution request processing module 303 . The structure of each module will be described.
  • the distribution request processing module 301 receives a distribution request packet 201 from a client and enters data in a distribution management table 305 so that the transmission processing module 304 can start transmitting stream data satisfying the transmission request.
  • FIG. 4 shows the structure of the distribution management table 305 .
  • the distribution management table has the following fields:
  • the distribution request processing module 301 performs initial settings of the “client ID address” and “current quality level” fields of the distribution management table 305 in accordance with the “client ID address” and “current quality level” fields of the received distribution request packet 201 .
  • the distribution request processing module 301 initializes the “transmitted data time index” field to 0.
  • the transmission processing module 304 is periodically driven by a timer.
  • the transmission processing module 304 refers to the distribution management table 305 and reads stream data 105 from the auxiliary storage device 104 , the stream data 105 having the quality level 402 and time index value 403 stored in the corresponding entry of the table.
  • the read stream data is transmitted toward the client IP address 401 stored in the entry. After the transmission is completed, the value in the transmitted time index field 403 is incremented.
  • FIG. 5 shows the structure of stream data in an auxiliary storage device of the distribution server.
  • the transmission processing module it is necessary for the transmission processing module to read stream data having the designated quality level and time index value from the auxiliary storage device 104 .
  • the stream data is stored in the auxiliary storage device 104 in the data format shown in FIG. 5 .
  • the auxiliary storage device 104 has a quality management table 501 having entries for respective quality levels. Each entry of the quality management table 501 stores information representative of a location of a meta data table 502 for the stream data having the corresponding quality level.
  • the meta data table 502 stores meta data of stream data and has entries for respective time index values. Each entry of the meta data table stores the location information of a data block 503 of the stream data having the corresponding time index value and the effective data size information of the data block 503 .
  • the transmission processing module 304 performs the following operations:
  • a meta data table corresponding to stream data having a designated quality level is searched from the quality management table 501 .
  • a data block of the stream data having a designated time index is searched from the meta data table 502 and the stream data is read from the data block.
  • the transmission processing module 304 receives a redistribution request instruction from the redistribution request processing module 303 . The operation thereof will be later described together with the description of the structure of the redistribution request processing module.
  • the redistribution request processing module 303 is driven in response to a reception of the redistribution request packet 204 from a relay server.
  • the redistribution processing module 303 passes the information of the “client IP address” and “time index” stored in the packet to the transmission processing module 304 .
  • the transmission processing module 304 Upon reception of the information, the transmission processing module 304 immediately performs the following operations:
  • the transmission processing module 304 refers to the distribution management table 305 and acquires the current quality level 402 of stream data to be transmitted toward the passed “client IP address” 401 .
  • the transmission processing module 304 reads the stream data having this “quality level” and passed “time index” from the auxiliary storage device, and transmits the stream data toward the passed “client IP address”.
  • the quality request processing module 302 is driven in response to a reception of a quality change request packet 203 from a relay server.
  • the quality request processing module 302 immediately renews the value in the “current quality level” field 402 of the distribution management table 305 to the value designated in the “quality level” field of the packet.
  • the structure of the relay server will be described with reference to FIGS. 6 to 8 .
  • FIG. 6 shows the overall structure of the relay server 103 .
  • the relay server 103 has a reception processing module 601 , a redistribution request processing module 603 , a quality request processing module 604 , and a transmission processing module 602 .
  • the structure of each module will be described.
  • the reception processing module 601 is driven in response to a reception of stream data from the distribution server or relay server at the preceding stage. At the same time when the reception processing module 601 stores the stream data in the auxiliary storage device 106 , a relay server management table 605 is renewed.
  • FIG. 7 shows the structure of the relay server management table 605 .
  • the reception processing module 601 Upon reception of the stream data, the reception processing module 601 renews the relay server management table 605 in the following operation sequence:
  • the “distribution server IP address” field 701 , “client IP address” field 702 , “preceding server IP address” field 703 , “current quality level” field 704 and “received data time index” field 705 of the new entry are initialized to the values in the “distribution server IP address” field, “client IP address” field, “preceding server IP address” field, “quality level” field, and “time index” field of the packet.
  • the “transmitted data time index” field 706 of the entry is initialized to the same value as that in the “received data time index field 705 .
  • the redistribution request processing module 603 is periodically driven by a timer.
  • the redistribution processing module 603 issues a redistribution request for the stream data having the time index value stored in the “lost time index list” field 707 of each entry of the relay management table 605 .
  • a redistribution request packet 204 is formed and transmitted toward the “preceding server IP address” 703 of the entry.
  • the values in the “distribution server IP address” and “client IP address” fields of the packet are copied from the corresponding fields of the entry.
  • the value in the “time index” field of the packet is copied from the “lost data time index list” field 707 of the entry.
  • the redistribution request processing module 603 is also driven in response to a reception of a redistribution request packet 204 from the relay server or client at the next stage of the subject relay server.
  • the information stored in the “distribution server IP address”, “client IP address” and “time index” fields of the packet is passed to the transmission processing module 602 , and a redistribution instruction is issued to the transmission processing module 602 .
  • the operation to be performed by the transmission processing module 602 in this case will be later described together with the description of the structure of the transmission processing module 602 .
  • the quality request processing module 604 is periodically driven by the timer to perform the following operations:
  • the quality change request packet 203 is transmitted to the distribution server or relay server at the preceding stage of its node.
  • the values in the “distribution server IP address” and “client IP address” fields of the packet are copied from the corresponding fields of the entry.
  • the value in the “quality level” field of the packet is set to a value in the “current quality level” field 704 of the entry subtracted by 1.
  • the quality request processing module 604 is also driven in response to a reception of a quality change request packet 203 from the relay server or client at the next stage of the subject relay server. In this case, the packet is simply transferred to the distribution server or relay server at the preceding stage.
  • the transmission processing module 602 is periodically driven by the timer. For each entry of the relay server management server 605 , the transmission processing module 602 performs the following operations:
  • FIG. 8 shows the structure of stream data in an auxiliary storage device of the relay server.
  • the transmission processing module 602 it is necessary for the transmission processing module 602 to read stream data having the designated distribution IP address, client IP address and time index value from the auxiliary storage device 106 . To realize this data read, the stream data is stored in the auxiliary storage device 106 in the data format shown in FIG. 8 .
  • the auxiliary storage device 106 has a client management table 801 having entries for respective pairs of the distribution server IP address and client IP address. Each entry of the client management table 801 stores information representative of a location of a meta data table 802 for the stream data transferred between the distribution server and client.
  • the structures of the meta data table 802 and data block 803 are similar to those shown in FIG. 5 , and the description thereof is omitted.
  • Stream data read by the transmission processing module 602 is similar to stream data read by the transmission processing module 304 of the distribution server 101 , and the detailed description thereof is omitted.
  • the transmission processing module 602 is also driven in response to a reception of a redistribution instruction from the redistribution request processing module 603 .
  • a redistribution instruction from the redistribution request processing module 603 .
  • information of the “distribution server IP address”, “client IP address” and “time index” is received from the redistribution request processing module 603 .
  • the transmission processing module 602 reads the corresponding stream data from the auxiliary storage device and transmits it toward the received “client IP address”.
  • FIG. 9 shows the structure of the client.
  • the client 102 has a reception processing module 901 , a reproduction processing module 902 , a quality request processing module 903 and a redistribution request processing module 904 .
  • the structure of each module will be described.
  • the reception processing module 901 receives an arrival stream data packet 202 at the reception buffer 109 .
  • stream data packets 202 are sorted by the value in the “time index” field.
  • the reproduction processing module 902 reads the stream data from the reception buffer and issues a display instruction to the display 108 .
  • the quality request processing module 903 is periodically driven by a timer. It is checked by referring to the state of the reception buffer whether the data amount in the reception buffer is a predetermined amount of more and whether the occurrent probability of loss of packets is a predetermined value or higher. If one of the conditions is satisfied, a quality change request packet 203 is transmitted to the relay server at the preceding stage.
  • the values in the “distribution server IP address” and “client IP address” fields of the stream data packet 202 stored in the reception buffer are set to the “distribution server IP address” and “client IP address” fields of the packet.
  • the value in the “quality level” field of the packet is set to a value in the “quality level” field of the stream data packet 202 at the end of the reception buffer subtracted by 1.
  • the redistribution request processing module 904 is also periodically driven by the timer.
  • the values in the “time index” fields of the stream data packets 202 stored in the reception buffer are checked to judge whether there is a packet loss. If there is a packet loss, the time index value of the stream data requested to be redistributed is acquired.
  • a redistribution request packet 204 is transmitted to the relay server at the preceding stage.
  • the values in the “distribution server IP address” and “client IP address” fields of the stream data packet 202 stored in the reception buffer are set to the “distribution server IP address” and “client IP address” fields of the packet.
  • the acquired time index value is stored in the “time index” field of the packet.
  • FIG. 10 shows the structure of a system according to a second embodiment of the invention.
  • a distribution server 1001 reads stream data 1005 from an auxiliary storage device 1004 and transmits it to a relay server 1003 .
  • the relay server 1003 buffers the received stream data in a stream data buffer 1007 in an auxiliary storage device 1006 .
  • a distribution request is transmitted to the relay server 1003 .
  • the relay server 1003 reads the stream data from the stream data buffer 1007 in the auxiliary storage device 1006 , and distributes it to the client 1002 .
  • the distribution request contains information of a requested quality of the stream data.
  • the relay server 1003 changes the quality of the stream data in the stream data buffer 1007 to the requested quality, and transmits it to the client 1002 .
  • This quality change is realized by thinning the stream data received from the distribution server 1001 (by lowering a frame rate, i.e., time resolution).
  • the client 1002 refers to the reception buffer 1008 and inspects whether there is a loss of stream data. If there is a loss of data, a data redistribution request is issued to the relay server 1003 . Upon reception of this redistribution request, the relay server 1003 reads the data from the stream data buffer 1007 and redistributes it.
  • the client 1002 also refers to the reception buffer 1008 and inspects whether the amount of buffered data becomes a predetermined amount or less and whether an occurrence probability of loss of stream data becomes a predetermined value or higher. If one of the two conditions is satisfied, it is judged that the network is in an overload state, and a quality change request for lowering the quality is transmitted to the relay server 1003 . Upon reception of this request, the relay server 1003 lowers the stream data to be transmitted thereafter to the requested quality, i.e. increases a thinning rate of the stream data.
  • the system having the structure shown in FIG. 10 has the following advantages:
  • the redistribution request process and quality change process are executed between the relay server and client. It is therefore possible to shorten the time from issuance of the redistribution request to arrival of redistributed stream data. The time from issuance of the quality change request to realizing the quality change can also be shortened. It is therefore possible to reduce the capacity of the reception buffer to be prepared at the client.
  • the format of data to be transferred between nodes shown in FIG. 10 will be described first, and then the structures of the relay server will be described in detail.
  • the structures of the distribution server and client are the same as those described earlier, and the description thereof is omitted.
  • FIGS. 11A to 11D show the formats of data to be transferred between nodes shown in FIG. 10 . These data formats are the same as those shown in FIG. 2 , excepting the following points:
  • Each packet has a “relay server IP address” field for storing an IP address of the relay server.
  • the structure of the relay server will be described with reference to FIGS. 12 and 13 .
  • FIG. 12 shows the overall structure of the relay server 1003 .
  • the relay server 1003 has a reception processing module 1201 , a distribution request processing module 1205 , a redistribution request processing module 1203 , a quality request processing module 1204 , and a transmission processing module 1202 .
  • the structure of each module will be described.
  • the reception processing module 1201 is driven in response to a reception of stream data from the distribution server. At the same time when the reception processing module 1201 stores the stream data in the auxiliary storage device 1006 , a relay server management table 1206 is renewed.
  • FIGS. 13A and 13B show the structure of the relay server management table 1206 .
  • the relay server management table has a distribution server management table part and a client management table part.
  • the distribution server management table part is used for managing a distribution server which transmits stream data to the relay server, and has entries for respective distribution servers.
  • the client management table part is used for managing a client which receives stream data from the relay server, and has entries for respective clients.
  • a “client IP address” field 1305 for storing an IP address of a client which is the transmission destination of the stream data.
  • the reception processing module 1201 Upon reception of the stream data, the reception processing module 1201 renews the distribution server management table part of the relay server management table 1206 and stores stream data in the auxiliary storage device 1006 in the following operation sequence:
  • the “distribution server IP address” field 1301 of the new entry is initialized to the value in the “distribution server IP address” field of the packet.
  • the values in the “received data time index” field 1302 and “transmitted data time index” field 1303 are initialized to the value in the “time index” field of the received data added with 1.
  • the client management table part of the relay server management table 1206 is searched to acquire a list of the “requested quality” fields 1306 corresponding to the “distribution server IP address” field 1301 .
  • the quality of the received stream data is changed to the acquired quality levels, and the stream data is stored in the auxiliary storage device.
  • the distribution request processing module 1205 is driven in response to a reception of a distribution request from a client.
  • an entry of the client management table part of the relay server table 1206 is newly formed in the following manner:
  • the redistribution request processing module 1203 is driven in response to a reception of the redistribution request packet 1104 from a client.
  • an entry of the client management table part of the relay server management table 1206 is searched which corresponds to the “distribution server IP address” and “client IP address” of the redistribution request packet.
  • the value in the “time index” field of the packet is added to the “lost data time index list” field 1307 of the searched entry.
  • the quality request processing module 1204 is driven in response to a reception of the quality change request packet 1103 from a client.
  • an entry of the client management table part of the relay server management table 1206 is searched which corresponds to the “distribution server IP address” and “client IP address” of the quality change request packet.
  • the value in the “requested quality” field 1306 of the entry is renewed to the value in the “quality level” field of the packet.
  • the transmission processing module 1202 is periodically driven by a timer. For each entry of the distribution server management table part of the relay server management table 1206 , the transmission processing module 1202 performs the following operations:
  • the transmission processing module 1202 performs the following operations:
  • A) Stream data designated by the “distribution server IP address” field 1301 , “transmitted data time index” field 1302 and “requested quality” field 1306 is read from the stream data buffer 1007 in the auxiliary storage device 1006 .
  • the value in the “transmitted data time index” field 1302 is incremented.
  • the read stream data is transmitted to the client designated by the “client IP address” field 1305 .
  • the read stream data is transmitted to the client designated by the “client IP address” field 1305 .
  • the transmission processing module 1202 it is necessary for the transmission processing module 1202 to read stream data having the designated distribution IP address, quality and time index value from the auxiliary storage device 1006 .
  • This data read can be realized by the method described with the first embodiment, and the details thereof are omitted.
  • Quality change can be made not only by lowering the time resolution but also by lowering the space resolution.

Abstract

Stream data is transmitted from a distribution server to a client without any loss of data. The capacity of a reception buffer to be prepared at the client can be made small and the network bandwidth necessary for data redistribution can be narrowed. A relay server interposed between the distribution server and client buffers stream data in an auxiliary storage device. When the relay server or client detects a loss of stream data, a redistribution request is transmitted to the distribution server or another relay server at the preceding stage.

Description

    CROSS-REFERENCE TO RELATED APPLICATION
  • This application relates to a U.S. patent application Serial No. entitled DATA RELAY METHOD-filed by T. Takeuchi et al. on.
  • BACKGROUND OF THE INVENTION
  • The present invention relates to a data distribution method, and more particularly to a stream data distribution method of redistributing data to compensate for lost stream data and changing the quality of stream data in accordance with a network load.
  • A stream data distribution method of compensating for lost stream data and changing the quality of stream data is known as disclosed in JP-A-11-184780. This stream data distribution method disclosed in JP-A-11-184780 is used in a system having a distribution server and clients interconnected by a network.
  • The distribution server distributes stream data to a client over the network. The client loads a received stream data in a reception buffer. Stream data in the reception buffer is periodically read and displayed on a display.
  • The client refers to the state of the reception buffer in order to inspect whether there is stream data lost during network transfer. If there is a loss of stream data, the client transmits a redistribution request for lost stream data to the distribution server. Upon reception of the request, the distribution server executes a redistribution process for the requested stream data.
  • When the client refers to the state of the reception buffer, the client inspects whether the amount of stream data in the reception buffer becomes a predetermined amount or less and whether an occurrence probability of loss of stream data becomes a predetermined value or higher. If the data amount becomes the predetermined amount or less and the occurrence probability becomes the predetermined value or higher, the client transmits a quality change request to the distribution server. Upon reception of this request, the distribution server thins stream data to be transmitted thereafter in order to change the transmission rate (to lower a frame rate, i.e., time resolution).
  • With the method disclosed in JP-A-11-184780, the client is required to have a reception buffer of large capacity, resulting in an expensive client. Namely, according to the method disclosed in JP-A-11-184780, the client issues the redistribution request and quality change request to the redistribution server. If a network delay is large between the redistribution server and client, it takes a long time for redistributed data to arrive the client or for the rate change to be reflected, after the client transmits the redistribution request and quality change request. Therefore, unless the client prepares a reception buffer having a sufficient capacity, the reproduction process of reading the reception buffer starts or the underflow of the reception buffer occurs before arrival of redistributed data and reflection of a rate change.
  • With the method disclosed in JP-A-11-184780, a network bandwidth necessary for redistribution of stream data is broad. For example, in a system in which a distribution server and clients are connected via a plurality of routers, according to the method disclosed in JP-A-11-184780, even if stream data is lost in the network between intermediate routers, stream data is redistributed by using the bandwidth of the network from the distribution server to the client. The network bandwidth is consumed more than ideal redistribution of using the bandwidth of only the network between intermediate routers.
  • With the method disclosed in JP-A-11-184780, only the time resolution is lowered to change the quality of stream data. Even in the case that the image quality can be suppressed from being lowered if the space resolution is lowered, a degraded image quality on a display can be visually confirmed if the time resolution is lowered.
  • SUMMARY OF THE INVENTION
  • An object of the invention is to provide a stream data distribution method capable of reducing the capacity of a reception buffer to be prepared at a client, narrowing the bandwidth of a network necessary for redistribution, and changing the quality not only by lowering a time resolution but also by lowering a space resolution.
  • In order to achieve the above-described object, the invention provides a data distribution method which comprises the following steps. This data distribution method assumes that a distribution server reads stream data from its auxiliary storage device and transmits it to a client.
  • 1) A plurality of stream data sets having different qualities are stored in an auxiliary storage device readable from a distribution server, and the distribution server reads only the stream data having a certain quality and transmits it.
  • 2) Relay servers are provided between the distribution sever and a client, and stream data to be relayed by a relay server is once buffered in an auxiliary storage device readable from the relay server.
  • 3) When the relay server detects a loss of stream data, the relay server issues a redistribution of lost stream data to the distribution server or another relay server at the preceding stage.
  • 4) Upon reception of the redistribution request, the distribution server or relay server reads the stream data from the auxiliary storage device and redistributes it.
  • 5) When the amount of stream data buffered in the auxiliary storage device by the relay server becomes a predetermined amount or less, or when the occurrence probability of loss of stream data becomes a predetermined value or higher, a quality change request of stream data is transmitted to the distribution server.
  • 6) Upon reception of the quality change request, the distribution server change the stream data to be read from the auxiliary storage device to thereby change the quality of stream data to be transmitted.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram showing the structure of a system according to a first embodiment of the invention.
  • FIGS. 2A to 2D show the formats of packets to be transferred between nodes.
  • FIG. 3 is a block diagram showing the overall structure of a distribution server of the embodiment.
  • FIG. 4 shows the structure of a distribution management table.
  • FIG. 5 shows the structure of stream data in an auxiliary storage device of the distribution server.
  • FIG. 6 shows the overall structure of a relay server.
  • FIG. 7 shows the structure of a relay management table.
  • FIG. 8 shows the structure of stream data in an auxiliary storage device of the relay server.
  • FIG. 9 shows the overall structure of a client.
  • FIG. 10 shows the structure of a system according to a second embodiment of the invention.
  • FIGS. 11A to 11D show the formats of packets to be transferred between nodes.
  • FIG. 12 shows the overall structure of a relay server of the second embodiment.
  • FIGS. 13A and 13B show the structure of a relay server management table.
  • DESCRIPTION OF THE EMBODIMENTS
  • A first embodiment of the invention will be described.
  • FIG. 1 shows the structure of a system according to the first embodiment.
  • In this system, a distribution server 101 reads stream data from an auxiliary storage device 104 and transmits it. A client 102 buffers the received stream data in a reception buffer 109 and displays it on a display 108.
  • Stream data is transmitted in response to a distribution request from the client 102. The distribution request contains information of the quality of stream data to be distributed. The distribution server 101 stores beforehand stream data having different qualities in the auxiliary storage device 104, and reads only the stream data having the requested quality from the auxiliary storage device and transmits it to the client 102.
  • The transmitted stream data is relayed by relay servers 103 to relay it to the client 102. The relay server 103 has stream data buffers 107 for buffering to some degree the received stream data in an auxiliary storage device 106 at its node. The stream data buffers 107 are managed in the unit of each client. When the amount of data in the stream data buffer 107 becomes a predetermined amount or more, the stream data is sequentially read and transmitted to the client 102. The relay server 103 and client 102 refer to the stream data buffer 106 and reception buffer 109 and inspect whether there is a loss of stream data. If there is a loss, a data redistribution request is issued to the distribution server 101 or relay server 103 at the preceding stage. The distribution server 101 or relay server 103 reads the data from the auxiliary storage device 105 or 106.
  • The relay server 103 and client 102 refer to the stream data buffer 106 and reception buffer 109 and inspect whether the amount of buffered data in the buffer 106 becomes less than a predetermined amount and whether time index loss in the stream data becomes a predetermined value or higher. If the data amount is small or the occurrence probability is high, it is judged that the network is in an overload state, and a quality change request (a request of lowering the quality) is issued to the distribution server 101 or relay server 103 at the preceding stage. This request is sequentially relayed by each relay server 103 so that the request finally reaches the distribution server 101. Thereafter, the distribution server 101 reads only the stream data having the newly requested quality from the auxiliary storage device 105 and transmits it to the client 102.
  • The system having the structure shown in FIG. 1 has the following advantages:
  • 1) The redistribution request process is executed between the subject node and adjacent distribution server or relay server. It is therefore possible to shorten the time from issuance of the redistribution request to arrival of redistributed stream data. Although the time from the quality change request to the actual quality change is the same as that of a conventional method, the capacity of a reception buffer to be prepared at the client can be made small because not only the client but also the relay server buffers the stream data.
  • 2) Since the redistribution request process is executed between the subject node and adjacent distribution server or relay server, it is possible to narrow the network bandwidth to be consumed by redistribution.
  • 3) Since the quality of stream data is changed by changing the stream data to be read from the auxiliary storage device by the distribution server, the quality change can be performed not only by lowering the time resolution but also by lowering the space resolution.
  • The format of data to be transferred between nodes shown in FIG. 1 will be described first, and then the structures of the distribution server, relay server and client will be described in detail.
  • FIGS. 2A to 2D show the formats of data to be transferred between nodes shown in FIG. 1. A format 201 of a packet storing a distribution request to be transmitted from a client to the distribution server has the following fields:
  • 1) A “command” field for storing data indicating that the packet is a distribution request packet.
  • 2) A “distribution server IP address” field for storing an IP address of the distribution server which is the transmission destination of the distribution request packet.
  • 3) A “client IP address” field for storing an IP address of the client which is the transmission source of the distribution request packet.
  • 4) A “quality level” field for storing a requested quality of stream data to be transmitted in response to the distribution request.
  • A format 202 of a packet storing stream data to be transmitted from the distribution server to a client has the following fields:
  • 1) A “command” field for storing data indicating that the packet is a stream data packet.
  • 2) A “distribution server IP address” field for storing an IP address of the distribution server which is the transmission source of stream data.
  • 3) A “client IP address” field for storing an IP address of the client which is the transmission destination of stream data.
  • 4) A “quality level” field for storing a quality of stream data stored in the packet.
  • 5) A “time index” field for storing a time index value of stream data stored in the packet. The time index value is information indicating the time required to reproduce the stream data after the start of all the stream data was reproduced.
  • 6) A “preceding stage server IP address” field for storing an IP address of the distribution server or relay server at the preceding stage which transmitted or relayed the stream data. When the packet is transmitted, the distribution server sets the IP address of its node to this field. When each relay server relays this packet, the relay server renews this field to the IP address of its node. Namely, each node received this packet can recognize from this field the IP address of the distribution server or relay server at the preceding stage.
  • 7) A “data size” field for storing the size of the stream data stored in the packet.
  • 8) A “data” field for storing the stream data of the packet.
  • A format 203 of a packet storing a quality change request has the following fields:
  • 1) A “command” field for storing data indicating that the packet is a quality change request packet.
  • 2) A “distribution server IP address” field for storing an IP address of the distribution server which is the transmission source of stream data whose quality was requested to be changed.
  • 3) A “client IP address” field for storing an IP address of the client which is the transmission destination of stream data whose quality was requested to be changed.
  • 4) A “quality level” field for storing a newly requested quality of stream data.
  • A format 204 of a packet storing a redistribution request has the following fields:
  • 1) A “command” field for storing data indicating that the packet is a redistribution request packet.
  • 2) A “distribution server IP address” field for storing an IP address of the distribution server which is the transmission source of stream data which was requested to be redistributed.
  • 3) A “client IP address” for storing an IP address of the client which is the transmission destination of stream data which was requested to be redistributed.
  • 4) A “time index” field for storing a time index value of stream data which was requested to be redistributed.
  • The structure of the distribution server will be described with reference to FIGS. 3 to 5.
  • FIG. 3 shows the overall structure of the distribution server 101. The distribution server 101 has a distribution request processing module 301, a transmission processing module 304, a quality request processing module 302, and a redistribution request processing module 303. The structure of each module will be described.
  • The distribution request processing module 301 receives a distribution request packet 201 from a client and enters data in a distribution management table 305 so that the transmission processing module 304 can start transmitting stream data satisfying the transmission request.
  • FIG. 4 shows the structure of the distribution management table 305. The distribution management table has the following fields:
  • 1) A “client IP address” field 401 for storing the IP address of a client which issued the distribution request.
  • 2) A “current quality level” field 402 for storing the quality level of stream data to be transmitted.
  • 3) A “transmitted data time index” field 403 for storing the time index value of stream data to be transmitted next.
  • The distribution request processing module 301 performs initial settings of the “client ID address” and “current quality level” fields of the distribution management table 305 in accordance with the “client ID address” and “current quality level” fields of the received distribution request packet 201. The distribution request processing module 301 initializes the “transmitted data time index” field to 0.
  • The transmission processing module 304 is periodically driven by a timer. The transmission processing module 304 refers to the distribution management table 305 and reads stream data 105 from the auxiliary storage device 104, the stream data 105 having the quality level 402 and time index value 403 stored in the corresponding entry of the table. The read stream data is transmitted toward the client IP address 401 stored in the entry. After the transmission is completed, the value in the transmitted time index field 403 is incremented.
  • FIG. 5 shows the structure of stream data in an auxiliary storage device of the distribution server.
  • As described above, it is necessary for the transmission processing module to read stream data having the designated quality level and time index value from the auxiliary storage device 104. To realize this data read, the stream data is stored in the auxiliary storage device 104 in the data format shown in FIG. 5.
  • The auxiliary storage device 104 has a quality management table 501 having entries for respective quality levels. Each entry of the quality management table 501 stores information representative of a location of a meta data table 502 for the stream data having the corresponding quality level.
  • The meta data table 502 stores meta data of stream data and has entries for respective time index values. Each entry of the meta data table stores the location information of a data block 503 of the stream data having the corresponding time index value and the effective data size information of the data block 503.
  • The transmission processing module 304 performs the following operations:
  • 1) A meta data table corresponding to stream data having a designated quality level is searched from the quality management table 501.
  • 2) A data block of the stream data having a designated time index is searched from the meta data table 502 and the stream data is read from the data block.
  • The transmission processing module 304 receives a redistribution request instruction from the redistribution request processing module 303. The operation thereof will be later described together with the description of the structure of the redistribution request processing module.
  • The redistribution request processing module 303 is driven in response to a reception of the redistribution request packet 204 from a relay server. The redistribution processing module 303 passes the information of the “client IP address” and “time index” stored in the packet to the transmission processing module 304. Upon reception of the information, the transmission processing module 304 immediately performs the following operations:
  • 1) The transmission processing module 304 refers to the distribution management table 305 and acquires the current quality level 402 of stream data to be transmitted toward the passed “client IP address” 401.
  • 2) The transmission processing module 304 reads the stream data having this “quality level” and passed “time index” from the auxiliary storage device, and transmits the stream data toward the passed “client IP address”.
  • The quality request processing module 302 is driven in response to a reception of a quality change request packet 203 from a relay server. The quality request processing module 302 immediately renews the value in the “current quality level” field 402 of the distribution management table 305 to the value designated in the “quality level” field of the packet.
  • The structure of the relay server will be described with reference to FIGS. 6 to 8.
  • FIG. 6 shows the overall structure of the relay server 103.
  • The relay server 103 has a reception processing module 601, a redistribution request processing module 603, a quality request processing module 604, and a transmission processing module 602. The structure of each module will be described.
  • The reception processing module 601 is driven in response to a reception of stream data from the distribution server or relay server at the preceding stage. At the same time when the reception processing module 601 stores the stream data in the auxiliary storage device 106, a relay server management table 605 is renewed.
  • FIG. 7 shows the structure of the relay server management table 605.
  • The relay server management table has the following fields:
  • 1) A “distribution server IP address” field 701 for storing an IP address of the distribution server which is the transmission source of stream data.
  • 2) A “client IP address” filed 702 for storing an IP address of the client which is the transmission destination of the stream data.
  • 3) A “preceding server IP address” field 703 for storing an IP address of the distribution server or relay server at the preceding stage.
  • 4) A “current quality level” field 704 for storing a current quality level of the stream data.
  • 5) A “received data time index” field 705 for storing a time index of the stream data expected to be received next.
  • 6) A “transmitted data time index” field 706 for storing a time index of the stream data to be transmitted next.
  • 7) A “lost data time index list” field 707 for storing a list of time index values of lost stream data.
  • Upon reception of the stream data, the reception processing module 601 renews the relay server management table 605 in the following operation sequence:
  • 1) An entry of the relay server management table 605 is searched which has the same values as those in the “distribution server IP address” and “client IP address fields of the received packet 202 storing the stream data.
  • 2) If the entry does not exist at 1), a new entry is formed. The “distribution server IP address” field 701, “client IP address” field 702, “preceding server IP address” field 703, “current quality level” field 704 and “received data time index” field 705 of the new entry are initialized to the values in the “distribution server IP address” field, “client IP address” field, “preceding server IP address” field, “quality level” field, and “time index” field of the packet. The “transmitted data time index” field 706 of the entry is initialized to the same value as that in the “received data time index field 705.
  • 3) If the entry exists at 1), the value in the “current quality level” field 704 of the entry is renewed to the value in the “quality level” field of the packet. The value in the “received data time index” field 705 of the entry is compared with the value in the “time index” field of the packet. In accordance with the comparison result, the following operations are performed:
  • A) If the latter (a value in the “time index” field) is larger by 1 than the former (a value in the “received data time index” field), it is judged that the stream data was received without any lost data, and the value in the “received data time index” field 705 of the entry is renewed to the value in the “time index” field of the packet.
  • B) If the latter is larger by 2 or more than the former, it is judged that there is lost data. The value in the “received data time index” field 705 of the entry is renewed to the vale in the “time index field” of the packet, and thereafter, the time index value of the lost data is added to the “lost time index list” field 707.
  • C) If the latter is smaller than the former, it is judged that the packet stores redistributed stream data, and the value in the “time index” field of the packet is removed from the “lost time index list” field 707 of the entry.
  • The redistribution request processing module 603 is periodically driven by a timer. The redistribution processing module 603 issues a redistribution request for the stream data having the time index value stored in the “lost time index list” field 707 of each entry of the relay management table 605. More specifically, a redistribution request packet 204 is formed and transmitted toward the “preceding server IP address” 703 of the entry. The values in the “distribution server IP address” and “client IP address” fields of the packet are copied from the corresponding fields of the entry. The value in the “time index” field of the packet is copied from the “lost data time index list” field 707 of the entry.
  • The redistribution request processing module 603 is also driven in response to a reception of a redistribution request packet 204 from the relay server or client at the next stage of the subject relay server. In this case, the information stored in the “distribution server IP address”, “client IP address” and “time index” fields of the packet is passed to the transmission processing module 602, and a redistribution instruction is issued to the transmission processing module 602. The operation to be performed by the transmission processing module 602 in this case will be later described together with the description of the structure of the transmission processing module 602.
  • The quality request processing module 604 is periodically driven by the timer to perform the following operations:
  • 1) It is checked for each entry of the relay server management table 605 whether the data amount in the stream data buffer 107 is a predetermined amount or less and whether an occurrence probability of loss of stream data is a predetermined value or higher. The former is checked depending upon whether a difference between values in the “received data time index” and “transmitted data time index” fields is a predetermined value or smaller. The latter is checked depending upon whether the time index value stored in the “lost data time index” field is a predetermined value or higher.
  • 2) If it is judged at 1) that the data amount is the predetermined amount of less or the occurrence probability is the predetermined value or higher, the quality change request packet 203 is transmitted to the distribution server or relay server at the preceding stage of its node. The values in the “distribution server IP address” and “client IP address” fields of the packet are copied from the corresponding fields of the entry. The value in the “quality level” field of the packet is set to a value in the “current quality level” field 704 of the entry subtracted by 1.
  • The quality request processing module 604 is also driven in response to a reception of a quality change request packet 203 from the relay server or client at the next stage of the subject relay server. In this case, the packet is simply transferred to the distribution server or relay server at the preceding stage.
  • The transmission processing module 602 is periodically driven by the timer. For each entry of the relay server management server 605, the transmission processing module 602 performs the following operations:
  • 1) It is judged from a difference between values in the “received data time index” and “transmitted data time index” fields of the entry whether the data amount in the stream data buffer 107 is the predetermined amount or more.
  • 2) Only when the data amount is the predetermined amount or more, it is judged that the stream data is transferred between the nodes designated by the values in the “distribution server IP address” field 701 and “client server IP address” field 702 of the entry. The stream data having the time index value designated in the “transmitted data time index” field 706 is read from the auxiliary storage device 106 and transmitted toward the “client IP address” 706.
  • FIG. 8 shows the structure of stream data in an auxiliary storage device of the relay server.
  • As described above, it is necessary for the transmission processing module 602 to read stream data having the designated distribution IP address, client IP address and time index value from the auxiliary storage device 106. To realize this data read, the stream data is stored in the auxiliary storage device 106 in the data format shown in FIG. 8.
  • The auxiliary storage device 106 has a client management table 801 having entries for respective pairs of the distribution server IP address and client IP address. Each entry of the client management table 801 stores information representative of a location of a meta data table 802 for the stream data transferred between the distribution server and client. The structures of the meta data table 802 and data block 803 are similar to those shown in FIG. 5, and the description thereof is omitted. Stream data read by the transmission processing module 602 is similar to stream data read by the transmission processing module 304 of the distribution server 101, and the detailed description thereof is omitted.
  • The transmission processing module 602 is also driven in response to a reception of a redistribution instruction from the redistribution request processing module 603. In this case, as described above, information of the “distribution server IP address”, “client IP address” and “time index” is received from the redistribution request processing module 603. The transmission processing module 602 reads the corresponding stream data from the auxiliary storage device and transmits it toward the received “client IP address”.
  • FIG. 9 shows the structure of the client.
  • The client 102 has a reception processing module 901, a reproduction processing module 902, a quality request processing module 903 and a redistribution request processing module 904. The structure of each module will be described.
  • The reception processing module 901 receives an arrival stream data packet 202 at the reception buffer 109. In the reception buffer 109, stream data packets 202 are sorted by the value in the “time index” field. The reproduction processing module 902 reads the stream data from the reception buffer and issues a display instruction to the display 108.
  • The quality request processing module 903 is periodically driven by a timer. It is checked by referring to the state of the reception buffer whether the data amount in the reception buffer is a predetermined amount of more and whether the occurrent probability of loss of packets is a predetermined value or higher. If one of the conditions is satisfied, a quality change request packet 203 is transmitted to the relay server at the preceding stage. The values in the “distribution server IP address” and “client IP address” fields of the stream data packet 202 stored in the reception buffer are set to the “distribution server IP address” and “client IP address” fields of the packet. The value in the “quality level” field of the packet is set to a value in the “quality level” field of the stream data packet 202 at the end of the reception buffer subtracted by 1.
  • The redistribution request processing module 904 is also periodically driven by the timer. The values in the “time index” fields of the stream data packets 202 stored in the reception buffer are checked to judge whether there is a packet loss. If there is a packet loss, the time index value of the stream data requested to be redistributed is acquired. A redistribution request packet 204 is transmitted to the relay server at the preceding stage. The values in the “distribution server IP address” and “client IP address” fields of the stream data packet 202 stored in the reception buffer are set to the “distribution server IP address” and “client IP address” fields of the packet. The acquired time index value is stored in the “time index” field of the packet.
  • FIG. 10 shows the structure of a system according to a second embodiment of the invention.
  • In this system, a distribution server 1001 reads stream data 1005 from an auxiliary storage device 1004 and transmits it to a relay server 1003. The relay server 1003 buffers the received stream data in a stream data buffer 1007 in an auxiliary storage device 1006.
  • When each client 1002 requests for a reception of stream data, a distribution request is transmitted to the relay server 1003. Upon reception of the distribution request, the relay server 1003 reads the stream data from the stream data buffer 1007 in the auxiliary storage device 1006, and distributes it to the client 1002. The distribution request contains information of a requested quality of the stream data. The relay server 1003 changes the quality of the stream data in the stream data buffer 1007 to the requested quality, and transmits it to the client 1002. This quality change is realized by thinning the stream data received from the distribution server 1001 (by lowering a frame rate, i.e., time resolution).
  • The client 1002 refers to the reception buffer 1008 and inspects whether there is a loss of stream data. If there is a loss of data, a data redistribution request is issued to the relay server 1003. Upon reception of this redistribution request, the relay server 1003 reads the data from the stream data buffer 1007 and redistributes it.
  • The client 1002 also refers to the reception buffer 1008 and inspects whether the amount of buffered data becomes a predetermined amount or less and whether an occurrence probability of loss of stream data becomes a predetermined value or higher. If one of the two conditions is satisfied, it is judged that the network is in an overload state, and a quality change request for lowering the quality is transmitted to the relay server 1003. Upon reception of this request, the relay server 1003 lowers the stream data to be transmitted thereafter to the requested quality, i.e. increases a thinning rate of the stream data.
  • The system having the structure shown in FIG. 10 has the following advantages:
  • 1) The redistribution request process and quality change process are executed between the relay server and client. It is therefore possible to shorten the time from issuance of the redistribution request to arrival of redistributed stream data. The time from issuance of the quality change request to realizing the quality change can also be shortened. It is therefore possible to reduce the capacity of the reception buffer to be prepared at the client.
  • 2) Similarly, since the redistribution request process is executed between the relay server and client, it is possible to narrow the network bandwidth to be consumed by redistribution.
  • The format of data to be transferred between nodes shown in FIG. 10 will be described first, and then the structures of the relay server will be described in detail. The structures of the distribution server and client are the same as those described earlier, and the description thereof is omitted.
  • FIGS. 11A to 11D show the formats of data to be transferred between nodes shown in FIG. 10. These data formats are the same as those shown in FIG. 2, excepting the following points:
  • 1) Each packet has a “relay server IP address” field for storing an IP address of the relay server.
  • 2) A stream data packet has no “preceding stage server IP address field”.
  • The structure of the relay server will be described with reference to FIGS. 12 and 13.
  • FIG. 12 shows the overall structure of the relay server 1003.
  • The relay server 1003 has a reception processing module 1201, a distribution request processing module 1205, a redistribution request processing module 1203, a quality request processing module 1204, and a transmission processing module 1202. The structure of each module will be described.
  • The reception processing module 1201 is driven in response to a reception of stream data from the distribution server. At the same time when the reception processing module 1201 stores the stream data in the auxiliary storage device 1006, a relay server management table 1206 is renewed.
  • FIGS. 13A and 13B show the structure of the relay server management table 1206. The relay server management table has a distribution server management table part and a client management table part. The distribution server management table part is used for managing a distribution server which transmits stream data to the relay server, and has entries for respective distribution servers. The client management table part is used for managing a client which receives stream data from the relay server, and has entries for respective clients.
  • The distribution server management table part has the following fields:
  • 1) A “distribution server IP address” field 1301 for storing an IP address of the distribution server which is the transmission source of stream data.
  • 2) A “received data time index” field 1302 for storing a time index value of stream data to be received next.
  • 3) A “transmitted data time index” field 1303 for storing a time index of stream data to be transmitted next.
  • The client management table part has the following fields:
  • 1) A “distribution server IP address” field 1304 for storing an IP address of the distribution server which is the transmission source of stream data.
  • 2) A “client IP address” field 1305 for storing an IP address of a client which is the transmission destination of the stream data.
  • 3) A “requested quality” field 1306 for storing the quality level of stream data to be transmitted.
  • 4) A “lost data time index list” field 1307 for storing a list of time index values of lost stream data.
  • Upon reception of the stream data, the reception processing module 1201 renews the distribution server management table part of the relay server management table 1206 and stores stream data in the auxiliary storage device 1006 in the following operation sequence:
  • 1) An entry of the relay server management table part of the relay server management table 1206 is searched which has the same value as that in the “distribution server IP address” field of the received packet 1102 storing the stream data.
  • 2) If the entry does not exist at 1), a new entry is formed. The “distribution server IP address” field 1301 of the new entry is initialized to the value in the “distribution server IP address” field of the packet. The values in the “received data time index” field 1302 and “transmitted data time index” field 1303 are initialized to the value in the “time index” field of the received data added with 1.
  • 3) If the entry exists at 1), the value in the “received time index” field 1302 of the entry is renewed to the value in the “time index” field of the received stream data added with 1.
  • 4) In addition, if the entry exists at 1, the client management table part of the relay server management table 1206 is searched to acquire a list of the “requested quality” fields 1306 corresponding to the “distribution server IP address” field 1301. The quality of the received stream data is changed to the acquired quality levels, and the stream data is stored in the auxiliary storage device.
  • The distribution request processing module 1205 is driven in response to a reception of a distribution request from a client. In order to perform the transmission satisfying this distribution request, an entry of the client management table part of the relay server table 1206 is newly formed in the following manner:
  • 1) The values in the “distribution server IP address”, “client IP address” and “distribution server IP address fields of the distribution request packet 1101 are copied to the “distribution IP address” field 1304, “client IP address” field 1305 and “requested quality” field 1306 of the newly formed entry.
  • 2) The “lost data time index list” field 1307 is initialized to be empty.
  • The redistribution request processing module 1203 is driven in response to a reception of the redistribution request packet 1104 from a client. In this case, an entry of the client management table part of the relay server management table 1206 is searched which corresponds to the “distribution server IP address” and “client IP address” of the redistribution request packet. The value in the “time index” field of the packet is added to the “lost data time index list” field 1307 of the searched entry.
  • The quality request processing module 1204 is driven in response to a reception of the quality change request packet 1103 from a client. In this case, an entry of the client management table part of the relay server management table 1206 is searched which corresponds to the “distribution server IP address” and “client IP address” of the quality change request packet. The value in the “requested quality” field 1306 of the entry is renewed to the value in the “quality level” field of the packet.
  • The transmission processing module 1202 is periodically driven by a timer. For each entry of the distribution server management table part of the relay server management table 1206, the transmission processing module 1202 performs the following operations:
  • 1) It is judged from a difference between values in the “received data time index” and “transmitted data time index” fields of the entry whether the data amount in the stream data buffer 1007 is a predetermined amount or more.
  • 2) Only when the data amount is the predetermined amount or more, entries of the client management table part are acquired which correspond to the “distribution server IP address” 1301 of the subject entry. For each entry of the client management table part, the transmission processing module 1202 performs the following operations:
  • A) Stream data designated by the “distribution server IP address” field 1301, “transmitted data time index” field 1302 and “requested quality” field 1306 is read from the stream data buffer 1007 in the auxiliary storage device 1006. The value in the “transmitted data time index” field 1302 is incremented.
  • B) The read stream data is transmitted to the client designated by the “client IP address” field 1305.
  • C) Stream data designated by the “distribution server IP address” field 1301, each index value in the “lost data time index list” fields 1307, and “requested quality” field 1306 is read from the stream data buffer 1007 in the auxiliary storage device 1006. The values in the “lost data time index” fields 1307 are renewed to be empty.
  • D) The read stream data is transmitted to the client designated by the “client IP address” field 1305.
  • As described above, it is necessary for the transmission processing module 1202 to read stream data having the designated distribution IP address, quality and time index value from the auxiliary storage device 1006. This data read can be realized by the method described with the first embodiment, and the details thereof are omitted.
  • The invention provides the following advantages:
  • 1) The capacity of a reception buffer to be prepared at a client can be made small.
  • 2) The network bandwidth necessary for redistribution can be narrowed.
  • 3) Quality change can be made not only by lowering the time resolution but also by lowering the space resolution.
  • It should be further understood by those skilled in the art that the foregoing description has been made on embodiments of the invention and that various changes and modifications may be made in the invention without departing from the spirit of the invention and the scope of the appended claims.

Claims (11)

1-10. (canceled)
11. A relay server for relaying data transmitted between a distribution server and a client apparatus via a network comprising:
a storage device that stores stream data transmitted from the distribution server to the client apparatus;
a distribution request processing module that receives a distribution request sent from the client apparatus to obtain the stream data from the distribution server, the distribution request including information of requesting the quality of the stream data to be distributed from the distribution server;
a quality request module that reads the requested quality of the stream data out of the distribution request, reads the stream data requested by the distribution request from the storage device, thins the stream data according to the requested quality to send the thinned stream data to the client apparatus;
a redistribution processing module that receives a redistribution request from the client apparatus of which includes time information indicating time to send the stream data to the client apparatus;
a transmission processing module that reads the stream data out of the storage device when time comes to time included in the data stream and distributes the stream data to the client apparatus; and
a quality request processing module that receives a quality change request sent from the client terminal and changes a thinning rate of the stream data according to the quality request.
12. The relay server according to claim 11, wherein said quality request processing module changes a frame rate according to said quality request.
13. The relay server according to claim 11, wherein said quality request processing module changes a frame rate of the stream data according to said quality request.
14. The relay server according to claim 11, wherein said quality request processing module changes to increase the thinning rate of the stream data according to said quality request for lowering the quality when the network is in an overload state.
15. The relay server according to claim 11, wherein the relay server stores IP addresses of its own server to data to be relayed;
if the relay server detects a loss of data stored in the second information storage device, it reads out an IP address of the distribution server or another relay server placed at a preceding stage stored in the data and transmits a redistribution request of data to another relay server at a preceding stage.
16. A data transmission method between a distribution server and a client apparatus via a network comprising:
storing stream data transmitted from the distribution server to the client apparatus;
receiving a distribution request sent from the client apparatus to obtain the stream data from the distribution server, the distribution request including information of requesting the quality of the stream data to be distributed from the distribution server;
reading the requested quality of the stream data out of the distribution request, reading the stream data requested by the distribution request from the storage device and thinning the stream data according to the requested quality to send the thinned stream data to the client apparatus;
receiving a redistribution request from the client apparatus of which includes time information indicating time to send the stream data to the client apparatus;
reading the stream data out of the storage device when time comes to time included in the data stream and distributing the stream data to the client apparatus; and
receiving a quality change request sent from the client terminal and changing a thinning rate of the stream data according to the quality request.
17. The data transmission method according to claim 16, wherein said changing the thinning rate comprises changing a frame rate according to said quality request.
18. The data transmission method according to claim 16, wherein said changing the thinning rate comprises changing a frame rate of the stream data according to said quality request.
19. The data transmission method according to claim 16, wherein said changing the thinning rate comprises changing to increase the thinning rate of the stream data according to said quality request for lowering the quality when the network is in an overload state.
20. The data transmission method according to claim 16, wherein the relay server stores IP addresses of its own server to data to be relayed;
if the relay server detects a loss of data stored in the second information storage device, it reads out an IP address of the distribution server or another relay server placed at a preceding stage stored in the data and transmits a redistribution request of data to another relay server at a preceding stage.
US12/068,389 2001-04-16 2008-02-06 Method for data distribution Abandoned US20080222301A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/068,389 US20080222301A1 (en) 2001-04-16 2008-02-06 Method for data distribution

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2001-116287 2001-04-16
JP2001116287A JP3884920B2 (en) 2001-04-16 2001-04-16 Data delivery method
US10/122,412 US7269662B2 (en) 2001-04-16 2002-04-16 Method for data distribution
US11/645,069 US7349986B2 (en) 2001-04-16 2006-12-26 Method for data distribution
US12/068,389 US20080222301A1 (en) 2001-04-16 2008-02-06 Method for data distribution

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/645,069 Continuation US7349986B2 (en) 2001-04-16 2006-12-26 Method for data distribution

Publications (1)

Publication Number Publication Date
US20080222301A1 true US20080222301A1 (en) 2008-09-11

Family

ID=18967044

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/122,412 Expired - Fee Related US7269662B2 (en) 2001-04-16 2002-04-16 Method for data distribution
US11/645,069 Expired - Fee Related US7349986B2 (en) 2001-04-16 2006-12-26 Method for data distribution
US12/068,389 Abandoned US20080222301A1 (en) 2001-04-16 2008-02-06 Method for data distribution

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/122,412 Expired - Fee Related US7269662B2 (en) 2001-04-16 2002-04-16 Method for data distribution
US11/645,069 Expired - Fee Related US7349986B2 (en) 2001-04-16 2006-12-26 Method for data distribution

Country Status (2)

Country Link
US (3) US7269662B2 (en)
JP (1) JP3884920B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259170A1 (en) * 2005-04-28 2006-11-16 Takashi Sasaki Audio relay apparatus and audio relay method
US20110222688A1 (en) * 2010-03-10 2011-09-15 Andrew Graham One vault voice encryption

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3884920B2 (en) * 2001-04-16 2007-02-21 株式会社日立製作所 Data delivery method
JP2003242059A (en) * 2002-02-18 2003-08-29 Sharp Corp Information distributing device, information terminal device, information distributing system, information distributing method and machine-readable recording medium with program recorded thereon
TW200421792A (en) * 2003-03-27 2004-10-16 Matsushita Electric Ind Co Ltd Contents distribution system
US20050052465A1 (en) * 2003-07-03 2005-03-10 Moore Richard L. Wireless keyboard, video, mouse device
US7774506B2 (en) * 2003-08-19 2010-08-10 Cisco Technology, Inc. Systems and methods for alleviating client over-subscription in ring networks
JP3935459B2 (en) * 2003-08-28 2007-06-20 株式会社東芝 Content management apparatus, content management system, and content management program
US7475322B2 (en) * 2003-11-14 2009-01-06 Avocent Huntsville Corporation Wireless broadcast protocol
EP1730911A1 (en) * 2004-03-30 2006-12-13 Matsushita Electric Industries Co., Ltd. Content relay server, content relay system, content relay method, and program using the same
JP4496935B2 (en) * 2004-11-22 2010-07-07 富士通マイクロエレクトロニクス株式会社 Audio / video output device and audio / video output method
US7929988B2 (en) * 2005-02-22 2011-04-19 Panasonic Corporation Radio reception apparatus and radio reception method
JP2008532181A (en) * 2005-03-01 2008-08-14 アイアールエム・リミテッド・ライアビリティ・カンパニー Method and system for accessing, annotating and sharing corporate data
US7710983B2 (en) * 2005-04-21 2010-05-04 Cisco Technology, Inc. Method and apparatus for determining information associated with a particular multicast channel in a multicast network
WO2006126260A1 (en) * 2005-05-25 2006-11-30 Mitsubishi Denki Kabushiki Kaisha Stream distribution system
KR100694216B1 (en) * 2005-06-07 2007-03-14 삼성전자주식회사 Apparatus and method for providing the channel of multi program on digital broadcasting system
WO2007007401A1 (en) * 2005-07-13 2007-01-18 Ixi Co., Ltd. Information processing system and program
CN1859561B (en) * 2005-11-01 2010-05-12 华为技术有限公司 Stream media ordered telecast system and method
EP1982455A2 (en) 2006-01-17 2008-10-22 Nokia Corporation A bandwidth efficient harq scheme in relay network
JP4345780B2 (en) * 2006-07-14 2009-10-14 ソニー株式会社 REPRODUCTION DEVICE, REPRODUCTION METHOD, AND COMPUTER PROGRAM
JP4371127B2 (en) * 2006-07-14 2009-11-25 ソニー株式会社 Playback device, playback method, and program
US8274906B2 (en) * 2006-08-17 2012-09-25 Dolby Laboratories Licensing Corporation Transient analysis of packet queuing loss in a broadcast network
JP4904114B2 (en) * 2006-08-23 2012-03-28 パナソニック株式会社 Relay device and relay method
CN101068236B (en) * 2007-04-13 2011-10-26 华为技术有限公司 Streaming media bit rate control method, system and equipment
CN101631137B (en) * 2008-07-15 2012-10-10 株式会社日立制作所 Communication control device and communication control method
US20120263063A1 (en) * 2009-10-26 2012-10-18 Telefonaktiebolaget Lm Ericsson (Publ) Client Entity, Network Entity and Data Replacement Entity
JP5609147B2 (en) * 2010-02-23 2014-10-22 富士通株式会社 Video distribution system, relay device, and video distribution program
JP2016146620A (en) * 2015-02-04 2016-08-12 日本電信電話株式会社 Data transfer system, relay node and data transfer method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212570B1 (en) * 1998-04-29 2001-04-03 Nippon Telegraph & Telephone Corporation Information distribution device selection system
US20010046212A1 (en) * 2000-05-26 2001-11-29 Fujitsu Limited Communication system, relay apparatus, end system, and communicating method
US6430620B1 (en) * 1997-03-25 2002-08-06 Matsushita Electric Industrial Co., Ltd. System and method for locating and retransferring lost data through the use of position number within a file

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2196622C (en) * 1996-02-06 2001-10-16 Hiroshi Jinzenji Network data distribution system
JPH10247944A (en) 1997-03-05 1998-09-14 Kokusai Denshin Denwa Co Ltd <Kdd> Relay controller and its method
JP4203140B2 (en) 1997-03-25 2008-12-24 パナソニック株式会社 Stream data transfer method and system
JPH1168873A (en) 1997-08-08 1999-03-09 Nec Corp Method and system for data communication
JPH1196099A (en) * 1997-09-19 1999-04-09 Hitachi Ltd Service providing system
US6728771B2 (en) * 1998-03-20 2004-04-27 Siemens Information And Communication Networks, Inc. Generic transport option for transporting messages in relay or broadcast mode via combinations of ISDN B-channels or D-channels
US6145084A (en) * 1998-10-08 2000-11-07 Net I Trust Adaptive communication system enabling dissimilar devices to exchange information over a network
JP2000228669A (en) 1999-02-08 2000-08-15 Hitachi Ltd Stream data delivery method in stream delivery system
US6785704B1 (en) * 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
JP3884920B2 (en) * 2001-04-16 2007-02-21 株式会社日立製作所 Data delivery method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430620B1 (en) * 1997-03-25 2002-08-06 Matsushita Electric Industrial Co., Ltd. System and method for locating and retransferring lost data through the use of position number within a file
US6212570B1 (en) * 1998-04-29 2001-04-03 Nippon Telegraph & Telephone Corporation Information distribution device selection system
US20010046212A1 (en) * 2000-05-26 2001-11-29 Fujitsu Limited Communication system, relay apparatus, end system, and communicating method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259170A1 (en) * 2005-04-28 2006-11-16 Takashi Sasaki Audio relay apparatus and audio relay method
US7995898B2 (en) * 2005-04-28 2011-08-09 Sony Corporation Audio relay apparatus and audio relay method
US20110222688A1 (en) * 2010-03-10 2011-09-15 Andrew Graham One vault voice encryption
US9059971B2 (en) * 2010-03-10 2015-06-16 Koolspan, Inc. Systems and methods for secure voice communications

Also Published As

Publication number Publication date
JP2002314598A (en) 2002-10-25
JP3884920B2 (en) 2007-02-21
US7349986B2 (en) 2008-03-25
US7269662B2 (en) 2007-09-11
US20020188747A1 (en) 2002-12-12
US20070106812A1 (en) 2007-05-10

Similar Documents

Publication Publication Date Title
US7349986B2 (en) Method for data distribution
EP1414186B1 (en) System and method for providing internet broadcasting data based on hierarchical structure
US7558854B2 (en) Access relaying apparatus
US7054961B2 (en) Streaming data transfer system and repeater therefor
US20130010794A1 (en) Generating Multiple Data Steams From a Single Data Source
US8572278B2 (en) Generating multiple data streams from a single data source
JP2006031063A (en) Priority control system
US20090119388A1 (en) Content relaying device and content relaying method
JP4398354B2 (en) Relay system
KR100793349B1 (en) Multicast forwarding apparatus and control method in system for using PPP multi-link
JPH0983565A (en) Communication system
US20010042253A1 (en) Multimedia service system using virtual server
JP7097427B2 (en) Data processing system and data processing method
JP6886874B2 (en) Edge devices, data processing systems, data transmission methods, and programs
NL2001157C2 (en) METHOD AND DEVICE FOR COMPENSATING PACKAGE LOSS.
JP2002191038A (en) Moving picture distribution system
US20110282926A1 (en) Relay apparatus, recording medium storing a relay program, and a relay method
US7007113B2 (en) System and method for data re-compression for communication over IP
JPH07123118A (en) Frame transmission circuit
CN117615167A (en) Video multi-protocol hybrid transmission system and method based on frame information recombination
CN116233085A (en) Multi-terminal streaming media transmission method, system and streaming media server cluster
KR20030003406A (en) Method for realtime sorting of streaming data in Multimedia Messaging Server system
JPH1168880A (en) Data communication equipment, method, system and storage medium
JPH11355737A (en) Moving image transfer method
JP2007019953A (en) Video data transmission system

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION