The invention is in the field of data transmission. The invention is particularly suitable for streaming live time-critical multimedia data.
Streaming is a method of transmitting data (especially video, audio and other multimedia data) over a computer network as a steady continuous stream. Conventional data transmission systems, in particular multimedia streaming systems, use either a reliable protocol (e.g. Transmission Control Protocol (TCP)—see Request for Comments RFC793, RFC1122 and RFC1323 of the Internet Engineering Task Force) or an unreliable protocol (e.g. User Datagram Protocol (UDP)—see Request for Comment RFC768) for the data transmission. Using a reliable protocol ensures that all the packets arrive at the receiver, but requires more bandwidth due to protocol overheads and it introduces more delay. An unreliable protocol is lightweight and faster although the data stream may be subjected to packet loss.
Systems which use these techniques to stream data from network servers to client devices (such as RealAudio™ and Microsoft™ Media) generally overcome packet loss by using a large receive buffer (a temporary memory area or queue) and/or a reliable protocol. As a result these systems provide multimedia data which is subject to delay, and the start-up delays are often large.
In a first aspect of the invention, there is provided a method of operating a data transmission system comprising:
Streaming both live and archived media present conflicting requirements because the priority for streaming live media is speed of transmission, whereas the priority for streaming archived material is quality. The present invention overcomes this conflict by using a combination of both protocols; an unreliable protocol initially followed by a reliable protocol. The unreliable protocol is used for the low delay transmission of packets while the reliable protocol is used at the end for the transmission of packets that were initially lost.
In a second aspect of the invention, there is provided a method of operating a media transmission device comprising;
In a third aspect of the invention, there is provided a method of operating a media reception device comprising;
In a fourth aspect of the invention, there is provided a media transmission device comprising;
In a fifth aspect of the invention, there is provided a media reception device comprising;
In a sixth aspect of the invention, there is provided a data transmission system comprising;
In an seventh aspect of the invention, there is provided a digital data carrier carrying a program of instructions executable by processing apparatus to perform the method steps as set out in any one of the first, second or third aspects of the invention. The digital data carrier may be a program storage device or an electromagnetic wave, for example.
Applications of embodiments of the present invention include personal use for recording holiday clips and sharing them in real time with family or friends while simultaneously archiving good quality footage. The transmitting client then behaves as a tape-less camcorder. Other uses include remote security applications or for use in emergency situations where visual contact with emergency personnel is time critical and not necessarily quality critical. Subsequent viewing of the footage may be more quality critical, perhaps for evidential reasons. A further application of embodiments of the present invention is conferencing.
Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying figures, wherein like reference numerals refer to like parts, and in which:
In applications where the client device uploads live content to a server for archiving, the live media is captured on a client device and transmitted to a server using an unreliable protocol. The server stores the received packets to a file. Any lost packets are recovered at the end of the transmission using a reliable protocol. Doing the media transmission in this way allows the archived media to be viewed in real-time by a third party, whilst the archiving is taking place, albeit subject to packet loss. Also, combined with layered media coding, it allows the real-time archiving of clips at a higher quality than the network connection permits.
When this technique is used for streaming content from a network server to a client device, the user will experience a low start-up delay, but may suffer packet loss during transmission of the clip. To overcome this problem the client application temporarily stores all received packets, then at the end of the clip, the lost packets can be recovered using a reliable protocol and stored on the device. If the clip was of interest it can be played again without any packet loss. If it was of little interest, it can be deleted from the client's temporary store. This offers an economical way, both in terms of time and bandwidth, of reviewing media clips before deciding whether to download a complete version.
When used in combination with layered media coding, the base layer is streamed initially using an unreliable protocol followed by the lost packets and enhancement layers. The playback quality will progressively improve as each new layer is added to those already received. For low-bandwidth scenarios this could be particularly useful as it allows a low quality preview immediately followed by progressively higher quality reviews of the clip.
Embodiments of the present invention allow media to be streamed using low delay, lightweight protocols with the effects of packet loss eliminated when reviewing or archiving the clip. Low delay viewing of live media by a 3rd party at the same time as the originator is archiving the media is possible. Importantly, previews of clips are made available immediately without start-up delays, at the cost of quality of initial viewing. Subsequent display of the clip will be of a high quality. The embodiments of the present invention allow the real-time streaming of media at a higher quality than network bandwidth allows when archiving or reviewing and thus ensures effective use of low bandwidth connections. The available bandwidth is used for media transmission rather than complex packet headers and acknowledgement mechanisms
Multimedia data is transmitted from a client 102 to a network server 104 where the multimedia data is stored and can be retrieved either by the originating client 102, or by a third party 105.
With reference to
UDP provides a mechanism for sending data over IP using little additional overhead, which is important in the wireless environment where bandwidth is limited. Because the protocol is limited it does not introduce any significant delay and is therefore suited to time-critical applications such as streaming live video footage. UDP provides no facilities for ensuring that the data arrives at the receiver and there is no method of determining whether packets arrive in the correct order. UDP is therefore considered to be a fast but unreliable protocol.
TCP is intended for use with IP to provide a reliable method of sending data. Reliability is achieved through the use of positive acknowledgements, which are sent by the receiver when the data packets are correctly received. When the transmitter sends a packet a timer is started. If an acknowledgement is not received within a given time then the packet is retransmitted. The process is repeated until the packet is successfully received. TCP is considered to be a reliable but slow protocol. A significant quantity of data must be buffered to ensure continuity of playback; the protocol is thus unsuitable for applications where delay is not tolerable, for instance video communication.
From the RTP packetiser 202 the RTP data packets are sent to a network interface 203 and a copy of each RTP packet is written to a temporary buffer 205. The network interface 203 controls the transmitting and receiving of data over the Internet 103. IP headers are added here which ensure the RTP packets arrive at the intended destination. The network interface 203 is also capable of adding TCP or UDP headers. The network interface 203 also receives data from the Internet 103.
A controller 206 is provided which is capable of sending and receiving RTP data packets to and from the network interface 203, reading RTP packets from the temporary buffer 205 and reading and writing RTP packets to and from a lost packet store 204. The lost packet store 204 is provided for storing packets which have been lost during transmission, by means of a mechanism to be described below. During transmission the number of lost packets in the lost packet store 204 will increase until transmission in the UDP mode ceases, whereupon the contents of the lost packet store 204 are transmitted. If the capacity of the lost packet store 204 is reached then transmission in UDP mode will be forced to cease. The capacity of the lost packet store 204 is therefore a limiting factor in the length of time the client can record multimedia data for.
The controller 206 is responsible for coordinating the recording operation of the client 102. Given the limited bandwidth of the wireless link, the user's quality requirement and the limited storage capacity of the lost frame store 204, the recording parameters of the client 102 need to be carefully coordinated. The bit rate at which multimedia data is encoded by encoder 201 can exceed the capacity of the network because the packets that are lost will be replaced. However, the more packets that are lost, the larger the lost packet store 204 should be for a given recording time.
The server 104 will now be described with reference to
The RTP module 302 is in communication with an archive 303 into which all received data packets are sent.
As mentioned above, the recorded media may be retrieved from the archive 303 of the server 104 by a separate receiving client 105. The structure of the receiving client 105 will now be described with reference to
Referring to
When the stop recording signal is received (523), the client 102 transmits (525) the contents of the lost packet store 204 to the server 104 using the reliable TCP mechanism. The missing packets are received (527) by the server 104 and sent (529) to the archive 303. The archive 303 is re-ordered to accommodate the missing data.
As mentioned above, the third party receiving client 105 may choose to view the live media as it is being recorded. In this instance it is preferable to use UDP. At any time during the recording session the receiving client 105 may make contact with the server 104 to request that multimedia data be forwarded. When this request is received, a separate process is started whereby the server 104 transmits (531) the received data packets to the receiving client at the same time as they are written to the archive 303. The data packets are received (533) by the receiving client 105, decoded (535) and displayed (537). In this way the receiving client 105 receives the multimedia data that is being captured by the transmitting client 102 in real-time.
The received data at this stage will possibly contain errors and therefore will be of a low quality. The RTP module 402 of the receiving client 105 keeps a record of all of the RTP sequence numbers of the lost data packets.
After viewing the low quality multimedia clip the user may then decide that a high quality version is required. The receiving client 105 then sends (539) the record of the lost data packets via TCP to the server 104, whereupon the server 104 retrieves (541) the identified data packets from the archive 303 and re-transmits (543) the lost data packets using reliable TCP. The receiving client then has a complete, high quality version of the multimedia data.
Within the embodiments described above, alternative arrangements are possible. Buffering other information as well as lost packets for transmission at a later time is possible. For instance, if layered coding was to be employed, the base layer could be sent from the transmitter to the receiver using the fast UDP mechanism, while the higher layers and lost packets could be transmitted later using the reliable TCP mechanism.
The skilled person will recognise that the invention is not limited to the use of TCP and UDP transport protocols: UDP is selected as an example of a fast unreliable transport protocol while TCP is selected as an example of a reliable transport protocol.
The skilled person will realise that a multimedia streaming system is an example of a data transmission system.
In the above described embodiment, the communication path between the client 102 and the server 104 is via a plurality of concatenated data links. The invention is also applicable to data transfer via a single data link—e.g. a radio link.
Number | Date | Country | Kind |
---|---|---|---|
01310084.7 | Nov 2001 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/GB02/05383 | 11/29/2002 | WO |