DATA STORAGE AND SUPPLY

Abstract: A server can store items of data in a computer file system and supply items of data, on request, through a network to clients in the form of terminals. When storing an item of data, the data is divided into individual portions and an allocating party is permitted to choose a rank indicating relative importance for allocation to each portion, a flag then being allocated to each portion on the basis of the allocated rank. When supplying an item of data, the available bandwidth of the connection to the terminal is measured and individual portions of data of lower importance are discarded so that the data can be transmitted within the available bandwidth.

Description: DATA STORAGE AND SUPPLY This invention relates to a method of storing data in a computer file system, a method of supplying data from a server associated with a computer file system through a network to a client, and a server for supplying data. Data transport requirements in the pre-multimedia era were mainly for uncorrupted delivery of audio signals or data These requirements were largely satisfied by the TCP/IP and the ISO transport protocols. This was adequate for traditional data applications like FTP and Telnet but inadequate for applications requiring real-time delivery. A continuous media signal, such as an audio signal or a video signal, has different communications needs, data must be transmitted and delivered as a steady data stream since irregularities in the data-flow will cause degradation of audio or video signals. On the other hand, both video and audio signals can tolerate a certain amount of information loss. Audio signals can tolerate a 1 % loss as long as each error burst is less than 4ms. The acceptable error loss for video signals is dependent on the encoding and compression schemes used. A customer accessing information on a server wants the best possible quality of service (QoS) from the access network and end-system client being used. There are many factors affecting this QoS with bandwidth being one of the most significant in most applications The clients may be connected to the server over connections using a wide variety of different access technologies, each of which has its own set of performance measures. The main aspect of a connection which is relevant to the transmission of a media signal is the data bandwidth that it offers. For example, customers on high bandwidth connections, such as Ethernet, may be able to watch the content as its creator intended it to look. However, another customer using the same service but connected via a much slower connection, for example, a modem, whilst obviously not seeing a full motion video, may not see anything, or at least anything useful, due to the non- graceful degradation of a video signal in the form of a data stream over low bandwidth connections. In the past, it has been possible to address the variety of QoS by storing multiple copies of the source data on a server, each copy being encoded according to a different compression ratio or algorithm The copy of the data suitable for a given access network and terminal is then selected by the server and transmitted to the user. This has the advantage that the data has been encoded according to a coding algorithm such that the received data is acceptable to the user. However, the management of multiple copies of a single source can be burdensome. Alternatively, a single copy of the source data may be stored on a server and, when the capabilities of the access network and user terminal are known to the server, the source data is transcoded into a suitable format. Since a single version of the source data is stored, management of the data is simplified compared to the multiple copy arrangement. However, the data received by the user may be so degraded as to be unintelligible to the user. Other known techniques refer to filtering data before transmission to reduce the amount of data to be transmitted. An example of such a filtering technique has been developed by Columbia University, in New York, USA (A Campbell, A. Eleftheriadis and C. Aurrecoechea, "End-to-End QoS Management for Adaptive Video Flows", 6th IFIP International Conference on High Performance Networking, 1 995). This work relates to dynamic management of QoS. Other filtering techniques include frame-dropping (in which, for example, inter-frame coded pictures are dropped in preference to intra-frame coded pictures), and frequency filters in which low-pass filtering, colour reduction filtering and colour-to- monochrome filtering occur (N. Yeadon, "Quality of Service Filtering for Multimedia Communications", PhD thesis, Lancaster University, May 1 996). The effect of different filters vary as a function of the content and complexity of the source data. Removing all the colour information can produce a data rate drop of about 10%. Bandwidth reductions of 65% to 85 % can be achieved by using a low-pass filter and requantisation filter. However, like the transcoding technique, the data reproduced at the user's terminal may be so degraded as to be unacceptable to the user. One example of a frame dropping technique is disclosed in European patent application EP 0 739 140 A, applicant Sun Microsystems Inc, for an 'Encoder for an end-to-end scalable video delivery system'. The encoder utilizes a scalable compression algorithm based upon Laplacian pyramid decomposition. A single bitstream comprising a base layer and first and second enhancement layers may be transmitted over heterogenous networks than can range from telephone lines to wireless transmission. It is disclosed that packets within this bitstream are preferably prioritized such that upon encountering a low bandwidth link or network congestion, the bitstream may be rescaled by dropping less important bits. In this way, video may be delivered at a range of bandwidths. Crucially, it will be appreciated however, that in scaling the video as appropriate for this range of bandwidths, the quality of the video will vary accordingly, i.e. compared to a sufficiently high bandwidth at which the video may be transmitted in toto, lower bandwidths, whilst still delivering the video, will do so with commensurately reduced quality In an IEEE paper, Conf. 37, pp 76-83, published 24-02-1 992, entitled 'Networking Digital Video', Prem Uppalaru of Fluent Machines Inc, mentions a system architecture for networked digital video A load monitoring protocol between a server and respective clients is used by the server to adjust the transmission rate of respective video streams depending on the network load. Further, it is indicated that audio and video are separated so that they may be treated differently The server software prioritizes audio over video such that, as long as the network can support the lower audio bit rate, pristine audio is transmitted, with the higher bandwidth video being transmitted at whatever frame rate can be managed by the network An IBM technical disclosure bulletin, vol 37, no.5, May 1 994, pp 251 -256, entitled 'Method to Deliver Scalable Video across a Distributed Computer System', notes the abovementioned Fluent Machines Inc approach and discloses a further frame-dropping technique. A so-called Coloured Index Sequential File is introduced, associating multimedia records with a given colour index. Upon network congestion, a scaling back of the multimedia flow may take place. This is achieved through the association of, for example, video reference frames with one colour index and video delta frames with another colour index, or, for example, alternate video delta frames with different colour indices. Upon congestion, transmission of frames of only a selected colour or colours may take place, such that, in the latter example, only perhaps one of every two video delta frames would be transmitted. A wider range of colours will allow commensurately finer control of the scaling back of transmissions. It will thus be appreciated from the above discussion that the techniques known to the prior art for dealing with the transmission of, for example, video transmission over low bandwidth links or during network congestion rely on the stepping down of the quality of the flow. Such a stepped down quality might result from, for example, a reduction in resolution or colour depth, or through the discarding of video delta frames. In accordance with a first aspect of this invention, there is provided a method of supplying data from a server through a network to a client, said server being associated with a computer file system, said method comprising the following steps performed by the server: receiving a request from the client for an item of data; retrieving the requested item of data and associated allocated flags from the computer file system, the item of data comprising individual portions of data, an allocating party having been permitted to choose a rank indicating relative importance for allocation to each respective individual portion and a flag having been allocated to each such portion indicating its allocated rank; measuring the bandwidth available for transmission of data from the server through the network to the client; with the individual portions ranked in accordance with their relative importance, identifying the portion or portions which can be transmitted to the client within the available bandwidth; and transmitting the identified portion or portions to the client. In this way, the method according to the invention advantageously allows the sending of only selected portions of the item of data. Those selected portions that are sent will be sent without the cutting back of quality associated with the methods of reacting to bandwidth scarcity according to the prior art. Preferably, the item of data has the form of a series of frames of data wherein the identifying of the portion or portions is carried out on the basis of delineation in terms of such frames. In this way, chosen portions of the item of data may advantageously be delineated in terms of such frames, for example, a start frame address and an end frame address. Further preferably, at least one identified portion comprises a single frame. In this way, single frames may be chosen out of a frame constituted datastream for particular prioritization in the ranking process. Yet further preferably, retrieving the requested item of data and associated allocated flags from the computer file system comprises retrieving separate data and flag files from the computer file system. In this way, the data storing process operates in transparent fashion having regard to the item of data. According to a second aspect of this invention, there is provided a method of storing an item of data in a computer file system, said method comprising the steps of: dividing the item of data into a series of individual portions; permitting an allocating party to choose a rank indicating relative importance for allocation to each respective individual portion; allocating a flag to each such portion indicating its allocated rank; and storing the data and the allocated flags in the computer file system. According to a third aspect of this invention, there is provided a server for supplying a requested item of data through a network to a client, said server comprising: receiving means for receiving a request from a client for an item of data; retrieving means for retrieving the requested item of data and associated allocated flags from a computer file system, the item of data comprising individual portions of data, an allocating party having been permitted to choose a rank indicating relative importance for allocation to each respective individual portion and a flag having been allocated to each such portion indicating its allocated rank; bandwidth measuring means for measuring the bandwidth available for transmission of data from the server through a network to a client; identifying means for identifying in an item of data with individual portions ranked in accordance with their relative importance the portion or portions of the item of data which can be transmitted within the available bandwidth as measured by the bandwidth measuring means; and means for transmitting the identified portion or portions of the item of data to a client. The invention will now be described by way of example only, with reference to the accompanying drawings, in which. Figure 1 shows a complete end-to-end network based system incorporating the invention; Figure 2 is a flow chart of the operations performed in the system of Figure 1 when storing an item of data; and Figure 3 is a functional block diagram of the components of the server shown in Figure 1 and associated database which are used when supplying an item of data to a client Referring now to Figure 1 , there is shown an end-to-end network based system for storage of and supplying items of data such as multimedia data or video data. Such data is also known as content The system comprises a server 2 for storing items of data (or content) in a database 10 and supplying items of data retrieved from the database 1 0, a plurality of terminals 4 acting as clients providing a user interface to the server 2 and an access network 6 for providing communications links between the terminals 4 and the server 2. It will be appreciated that the use of the term 'database' is merely as one example of a computer file storage system such that items of data may be stored and retrieved. Likewise, it will be appreciated that, for example, these items of data may be stored in a database or other computer file storage system hosted on the server computer itself The access network 6 may be any network, for example, an ATM network, a LAN (Ethernet) network, a mobile network, an ISDN dial-up network or a PSTN dial-up network There are therefore a large range of data rates possible between the server 2 and the terminals 4 and therefore a wide choice of quality is available to the user Ensuring that each client 4 obtains the maximum possible QoS is challenging in an environment where each client 4 may be connected via a different and time varying link to the server 2 Managing this problem requires the ability to adapt the QoS over time in response to the dynamic bandwidth of the link in question. Ideally, all users of the system would see items of data with their original quality but, under circumstances where due to bandwidth constraints this is not possible, the system should adapt in an intelligent way Existing systems, as described above, use various types of filtering to achieve the required reduction in bandwidth. Such filtering degrades all the delivered material equally, for example, by reducing cover depth, frame rate, resolution or high frequency information. Whilst at first sight this approach is technically acceptable, from the point of view of the content creator or owner it may not be. The filtering processes of the prior art may well leave artistically essential elements of the presentation illegible or unintelligible. By way of a simple example, if a content creator makes a promotional video of a new car, whilst the video could be presented as the content creator intended over a high bandwidth link, the quality of the video provided over a low bandwidth link might well prove to be unacceptable. Rather than such a low quality video, the content creator might well prefer to be able to send a high quality still frame from the video of the new car. In this way, the new car could still be presented to the browsing public with the degree of quality required by the content creator The invention provides for a guarantee of the delivery of such high importance information contained in an item of data in the presence of bandwidth constraints. To achieve this, individual portions of an item of data are coded in accordance with the relative importance of their information content and the data is stored in the database 10 for retrieval when a request for an item of data is received from a client Figure 2 shows a flow diagram illustrating the coding of an item of source data in accordance with this invention In a step 202, an item of data is received by the server 2 The item of data might typically take the form of a data stream but it will be appreciated that the item of data could take other forms, for example a simple image file. The data may be transmitted to the server 2 over the network 6 or it may be supplied to the server 2 on a storage medium such as a floppy disk. The data stream may be a video data stream encoded according to the MPEG 1 standard. Alternatively, it may be a multimedia data stream, representing a mixture of types of media, such as audio, video, image or text, or it may be a data stream representing a single media other than video. The data stream is typically generated in a way that permits specific frames or a sequence of frames to be selected by a user. It will be appreciated however, that such datastreams may be delineated into portions other than on a frame-by-frame basis, for example, delineating an audio stream into time-based portions. In a step 204, the data stream is divided into a series of individual portions. This division will be performed on the basis of the differing content represented in different parts of the datastream To use the simple example mentioned above, a video datastream might depict a promotional video for a new car, different portions of which depict the car, for example, from different angles, or performing in different circumstances. Each portion is defined by a start frame and end frame In a step 206, the individual portions are ranked in accordance with the relative importance of their information content. An allocating party such as, for example, the content creator or owner, will choose such ranks for allocation to the respective portions. The criteria of deciding how to rank the individual portions according to the relative importance of their information content is defined by the party performing the ranking. This party might, for example, be the content creator or the content owner An artistically pleasing image of an object might be ranked more highly than an artistically poor image of an object. A particularly appealing image of an object for sale might be ranked more highly than a video sequence showing the product in use. One image from such a video sequence might be particularly preferred. In a step 208, a flag is allocated to each individual portion indicating the relative importance of its content. Lastly, in a step 210, the items of data and the flags are stored in the database 10. Typically, an item of data and the file containing the associated flags will be stored as separate files. In this way an item of data remains independent from its associated flag file. Steps 204, 206 and 208 may be done manually or by an automated process performed by the server 2 under the control of a software program, for example using image searching techniques to find predefined important portions of the data stream. An example of suitable software which can be used in performing steps 204, 206 and 208 is the image software available from, for example, the Virage Corporation linked into a database management system available from, for example, the Informix Corporation. Each flag represents metadata related to the respective data portion. The metadata is then stored in a file together with identifiers (for example, start frame and end frame) of the individual portion associated with the metadata. The following table shows an example of the structure of such a file: In the present example, there are three flags representing, respectively, three levels of importance. Level 1 indicates that the identified portion of the source data is of the highest level of importance, level 2 is the next in importance and level 3 is of the lowest importance. As will be described below with reference to Figure 3, when a connection is established between the server 2 and a terminal 4, the server 2 measures the bandwidth of the connection The bandwidth is also measured dynamically during transmission of data. The bandwidth is used to determine which levels of data are to be transmitted to the terminal 4. It will be appreciated that this hierarchy of content on the basis of an associated priority level correlates with a determination of an acceptable content download time This is to say, using the simple example outlined above, that with a high available bandwidth, where data portions tagged with all three levels of priority will be sent, a promotional video of a new car might be sent in its entirety, whereas with a low bandwidth link, a still frame from the video might instead be sent, in order that a high quality presentation of the car in some form is still made in a time acceptable to the downloading user. Referring now to Figure 3, there are shown the functional components of a server 2 which are used to supply data to one of the terminals 4. These components comprise a broker 8, a data streamer 204, a frame-dropping filter 206, other filters 210 and a bandwidth measurer 202. The other filters 210 may, for example, comprise a frequency filter, a colour reduction filter and a colour-to- monochrome filter. When the server 2 receives a request from a terminal 4 for an item of data, the data streamer 204 retrieves the data from the database 10. When retrieved from the database 10, the data may be coded, for example, MPEG coded. As coded data passes through the server 2, it is not decoded. After leaving the data streamer 204, the data stream passes through the frame-dropping filter 206 and, optionally, through the other filters 210. Before leaving the server 2, the data stream is wrapped in an appropriate protocol to provide an output signal. The output signal is transmitted through the network 6 to the client terminal 4 It will be appreciated that this output signal might be such as to stream the remaining portions of the item of data to the client or the remaining portions might be downloaded to the client for buffered viewing. The bandwidth measurer 202 measures the currently available bandwidth of the connection between the server 2 and the terminal 4. A variety of techniques for the measurement of such currently available bandwidth between, for example, a server and a client will be well known. One such simple example is the mere counting of the number of bytes passing through a buffer in a particular period of time More sophisticated techniques might utilize traffic monitoring software and Remote network Monitoring (RMON) probes. So-called RMON I and II probes will be familiar both as industry standards and as the subjects of a number of Internet Engineering Task Force (IETF) Requests for Comments (RFCs) . The bandwidth measurer 202 informs the broker 8 of the value of the available bandwidth. The broker 8 retrieves the metadata or flags for the requested item of data. Using the metadata and the value for the available bandwidth, the broker 8 decides which portions of data based on their levels of importance are to be discarded to meet the conditions having regard to the available bandwidth. It will be appreciated that there may also exist other factors of network state, for example network delay, or client capabilities, for example, display resolution or colour depth, which might also have a bearing on these conditions for discarding data. Thus, with the individual portions of the requested item of data ranked by the levels of importance of their information content, the broker 8 decides on the dividing line between the portions which can be transmitted and the portions which are to be discarded. For example, with portions of data ranked into three levels of importance, the broker 8 might decide that only portions of the highest level of importance can be transmitted. The broker 8 informs the frame-dropping filter 206 of the start and end frame numbers of each portion which is to be discarded. Frame-dropping filter 206 removes these portions from the data stream which it receives from the data streamer 204. The broker 8 also decides whether further filtering is required. If further filtering is required the broker 8 instructs the other filters 210 to apply such filtering. Because the data is filtered primarily in accordance with the content represented by portions of that data and not its physical characteristics, the bandwidth of the output signal can be controlled while maintaining the quality of the data received by the user of the terminal 4. In this way, whilst the user may only receive portions of the work authored by the content creator, these portions should be of a quality with which the content creator or owner will be pleased to present the subject of the content to the world at large.

Claims: CLAIMS 1 . A method of storing an item of data in a computer file system, said method comprising the steps of: dividing the item of data into a series of individual portions; permitting an allocating party to choose a rank indicating relative importance for allocation to each respective individual portion; allocating a flag to each such portion indicating its associated rank; and storing the data and the allocated flags in the computer file system. A method as claimed in claim 1 in which the item of data has the form of a series of frames of data, such that said individual portions are delineated in terms of such frames. 3. A method as claimed in claim 2 in which at least one of said individual portions comprises a single frame. 4. A method as claimed in any one of claims 1 to 3 in which the data and the flags are stored as separate files in the computer file system. 5. A method of supplying data from a server through a network to a client, said server being associated with a computer file system, said method comprising the following steps performed by the server: receiving a request from the client for an item of data; retrieving the requested item of data and associated allocated flags from the computer file system, the item of data comprising individual portions of data, an allocating party having been permitted to choose a rank indicating relative importance for allocation to each respective individual portion and a flag having been allocated to each such portion indicating its allocated rank; measuring the bandwidth available for transmission of data from the server through the network to the client; with the individual portions ranked in accordance with their relative importance, identifying the portion or portions which can be transmitted to the client within the available bandwidth; and transmitting the identified portion or portions to the client. 6. A method as claimed in claim 5 wherein the item of data has the form of a series of frames of data and in which the identifying of the portion or portions is carried out on the basis of delineation in terms of such frames. 7. A method as claimed in claim 6 in which at least one identified portion comprises a single frame. 8. A method as claimed in any one of claims 5 to 7 in which retrieving the requested item of data and associated allocated flags from the computer file system comprises retrieving separate data and flag files from the computer file system. 9. A server for supplying a requested item of data through a network to a client, said server comprising: receiving means for receiving a request from a client for an item of data; retrieving means for retrieving the requested item of data and associated allocated flags from a computer file system, the item of data comprising individual portions of data, an allocating party having been permitted to choose a rank indicating relative importance for allocation to each respective individual portion and a flag having been allocated to each such portion indicating its allocated rank; bandwidth measuring means for measuring the bandwidth available for transmission of data from the server through a network to a client; identifying means for identifying in an item of data the portion or portions of the item of data which can be transmitted within the available bandwidth as measured by the bandwidth measuring means; and means for transmitting the identified portion or portions of the item of data to a client. 10. A server as claimed in claim 9 wherein the item of data has the form of a series of frames of data and in which the identifying means carries out the identification on the basis of the delineation of the portion or portions in terms of such frames. 1 1 . A server as claimed in claim 10 in which the identifying means comprises means for identifying a portion comprising only a single frame. 1 2. A server as claimed in any one of claims 9 to 1 1 in which the retrieving means comprises means for retrieving separate data and flag files from the computer file system. 1 3. A method of supplying data from a server through a network to a client, said server being associated with a computer file system, said method comprising the following steps performed by the server: receiving a request from the client for an item of data; retrieving the requested item of data and associated allocated flags from the computer file system, the item of data comprising a series of individual portions of data each of which is allocated a flag indicating the relative importance of the content represented by that portion; measuring the bandwidth available for transmission of data from the server through the network to the client; with the individual portions ranked in accordance with their relative importance, identifying the portions of lower importance which are to be discarded so that the remaining portion or portions can be transmitted to the client within the available bandwidth; and before transmitting the remaining portion or portions to the client, discarding the identified portions. 14. A server for supplying a requested item of data through a network to a client, said server comprising: receiving means for receiving a request from a client for an item of data; retrieving means for retrieving the requested item of data and associated allocated flags from a computer file system, the item of data comprising a series of individual portions of data each of which is allocated a flag indicating the relative importance of content represented by that portion; bandwidth measuring means for measuring the bandwidth available for transmission of data from the server through a network to a client; identifying means for identifying in an item of data with individual portions ranked in accordance with relative importance the portions of lower importance which are to be discarded so that the remaining portion or portions of the item of data can be transmitted within the available bandwidth as measured by the bandwidth measuring means; and means for discarding portions of data identified by the identifying means from an item of data before transmitting the remaining portion or portions to a client.

Inventors: BEAUMONT DAVID OWEN, WILLIS BEN, BEAUMONT, DAVID, OWEN, WILLIS, BEN
Applicants: BEAUMONT DAVID OWEN, BRITISH TELECOMM, WILLIS BEN, BEAUMONT, DAVID, OWEN, BRITISH TELECOMMUNICATIONS PUBLIC LIMITED COMPANY, WILLIS, BEN
Application year: 1999
Main classification: H04L12
IPC codes: H04L12, H04N5, H04N7