Abstract:
The apparatus and method for estimating the size of content being received before the actual transmission of the data utilizes Electronic Service Guide (ESG) information. The ESG information assists a client device in obtaining file information before the file is actually transmitted by the source of the same. In this manner, the power supply of the user device can be managed more efficiently and provide the user with the ability to make storage determinations at their user device before expending the power resources necessary to obtain (i.e., download) and store a particular file of interest to the user without requiring any user intervention.

Description:
This application claims the benefit, under 35 U.S.C. §365 of International Application PCT/US2007/025,810, filed 18 Dec. 2007, which was published in accordance with PCT Article 21(2) on 25 Jun. 2009, in English. 
     BACKGROUND 
     1. Technical Field 
     The present invention relate to broadcast networks. More particularly, they relate to estimating file size before receiving the same. 
     2. Description of Related Art 
     Broadcast technologies, such as DVB-H, enable delivery of data to low-power, portable client devices, which in turn enables content on demand services. In such services, content is continually received at a client and may be consumed by the end user immediately or consumed at a later time. In some cases, the amount of content that is stored is limited by the storage capacity of the client. When a service provides frequent content updates, it is desirable to enable quick storage and replacement of received data. In such services estimating the size of content being received before the actual transmission of the data can be helpful in replacing already stored content or deciding what content will be stored in the future. 
     SUMMARY 
     According to an aspect of the present principles, the method for file size estimation over a communication channel in a broadcast network includes estimating file size using broadcast schedule information before actually receiving the file, and determining whether or not to receive and store the file before downloading the same to a client device automatically and/or without requiring user intervention. This determination is based on user preferences stored in a user profile on the client device. The method can further include determining the bandwidth of the communication channel. 
     The file size estimation can be determined by deriving start and end times of the file from the broadcast schedule. In another implementation, the file size estimation uses electronic service guide (ESG) information relating to the file from a service provider. 
     The bandwidth determinations can be performed by estimation, or by obtaining previously known values for the bandwidth of the communication channel. 
     According to another aspect of the present principles, the apparatus includes a mobile client device having a memory contained therein and being configured to estimate a file size using broadcast scheduled information before actually receiving the file, and to automatically determine whether or not to receive and store the file before downloading the same to the memory of the device automatically and/or without requiring user intervention. 
     The mobile client device is further configured to determine the bandwidth of a communication channel over which the file is to be transmitted to the mobile device. 
     A user profile stored in the memory of the client device enables the client device to make the automatic determination without user requiring intervention. 
     According to another implementation of the present principles, the apparatus includes a mobile client device having a memory contained therein. The memory includes a computer program product comprising readable program code embodied thereon for use in operating the mobile client device. The program product includes program code for estimating a file size using broadcast schedule information before actually receiving the file, and program code for determining whether or not to receive and store the file before downloading the same to the mobile client device without user intervention. The client device further includes program code for determining storage space limitations on the client device using the estimated file size. This determination is made based on stored preferences in the user profile stored in the memory of the client device. 
     Other aspects and features of the present principles will become apparent from the following detailed description considered in conjunction with the accompanying drawings. It is to be understood, however, that the drawings are designed solely for purposes of illustration and not as a definition of the limits of the present principles, for which reference should be made to the appended claims. It should be further understood that the drawings are not necessarily drawn to scale and that, unless otherwise indicated, they are merely intended to conceptually illustrate the structures and procedures described herein. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       In the drawings wherein like reference numerals denote similar components throughout the views: 
         FIG. 1  is block diagram of a bi-directional broadcast network scenario according to known implementations; 
         FIG. 2  is a block diagram of a uni-directional broadcast network according to known implementations; 
         FIG. 3  is diagrammatic representation of a clip and times at which the clip is to be broadcast; 
         FIG. 4  is diagrammatic representation of clip A to be broadcast and several clips stored in a client device; 
         FIG. 5  is flow diagram of the method for file size estimation according to an implementation of the present principles; and 
         FIG. 6 a    is block diagram of the method according to an implementation of the present principles; 
         FIG. 6 b    is a flow diagram of the method for file size estimation according to another implementation of the present principles. 
     
    
    
     DETAILED DESCRIPTION 
     There are known methods to estimate the instantaneous bandwidth of a given channel. This is usually done on a bi-directional point-to-point network by measuring the amount of time it takes to acquire a known quantity of data.  FIG. 1  shows an example of a bi-directional point to point network  100  where both the server  102  and client  106  are in bi-directional communication with each other via the network  104 . 
     In most bi-directional client-server network architectures, a client requests a known quantity of data and records the start time and the end time of data transmission through a series of network packets going back and forth between the server and the client, to estimate channel capacity. 
       FIG. 2  shows an example of a uni-directional client/server architecture  200  where the server  202  transmits data to one or more clients  204   a - c.    
     File Delivery can be performed using File Delivery over Unidirectional Transport (FLUTE) protocol. FLUTE is a protocol for multicast file delivery, and can be used to transmit data or content over uni-directional networks. A client can monitor the amount of data flowing at any particular time and use this information to estimate the channel capacity. In a constant capacity channel environment, this measurement could be done only once. In a variable channel, a best effort of the channel capacity (i.e., bandwidth) can be maintained and constantly updated. 
     A personalized broadcast video system provides a simple user interface for personalization, while efficiently using network bandwidth and minimizing receiver device battery usage. A user profile on a receiver device indicates the interests of the user. Individual clips to be broadcast are associated with flexible metadata tags, such as keywords, sent in an Electronic Service Guide (ESG). The ESG contains information about television programs scheduled for broadcast, and typically includes descriptive data, or metadata, about individual programs, such as the name of the program, a synopsis, actors, director, etc., as well as the scheduled time, date, duration and channel for broadcast. 
     The DVB-CBMS standard enables a service for broadcasting of multimedia content files, such as compressed video or audio files, using DVB-H. The DVB-H ESG provides a standardized ESG, which builds upon TV-Anytime or On-demand programming. In the DVB-H ESG, individual pieces of content are uniquely identified by the ContentID attribute of the content fragment. 
     In cases where a service of personalized broadcast video system is provided, content is continually broadcast and based on client preferences, content is received and stored. However, in such cases the client tends to be switched on all the time and hence results in inefficient power usage. Power management would be more efficient if the client only switched power on for reception of preferred content. In order to do this, however, the client has to decide which content can be saved based on local storage limitations, before the content is actually broadcast. According to an implementation of the present principles, this decision is established in the user profile preferences stored in the client device so that no user intervention is required. 
     The DVB-H ESG advertises the use of a file size parameter in the Acquisition fragment in the ComponentCharacteristic type named FileDownloadComponentCharacteristic under the Storage identifier. However, this only measures the file size as in megabytes and this granularity is not sufficient for providing advance notice of the content before actual broadcast. 
     As mentioned above, in unidirectional or broadcast networks there is no feedback from a client. The client only receives data that is broadcast. In such scenarios, the client can estimate bandwidth by passively monitoring the data packets. In order to make estimates of the file size of the content that is going to be broadcast, an estimated value of the bandwidth of the channel is required. This can be done by using a statistical table of sampled bandwidth over time or any other method of bandwidth estimation. 
     One example of estimating the bandwidth is by using the “b=” identifier specified in the Session Description Protocol (SDP) file. The SDP file contains a set of identifiers that associate with the acquisition of content. 
     In another example, a client could timestamp the start of a packet transmission and after a period of time, derive how much data was received. This would then help the client get an estimate of the bandwidth of the channel, where Bandwidth of the Channel=Number of bytes received/Time. 
     Another method of estimating bandwidth would be by using server provided data to the client. For example by using the DVB-H ESG specification, the Storage identifier can be used as a rough estimate of the file size of a content file going to be broadcast. This rough estimate, along with the start time and end time of broadcast from the already received schedule ESG fragment on the client device, can be used to estimate the bandwidth over an initial period of time. This is particularly useful in situations where the bandwidth of the channel is variable. The client device can use this method to estimate the approximate bandwidth. The client can also use this method to calculate the error in its estimates. For example once the whole file has been downloaded the, actual size of the file is known and this can be used to recalculate the bandwidth and hence adjust the estimating parameters so that future estimates are more accurate. 
     A file download service may be defined as a service that provides content for download in the form of files. These files are consumed at the receiver application and presented to the user. Providers of this service need to be sensitive about client device power and storage needs. Content is continually being broadcast and new content is stored on the client device while old ones are replaced. Replacing of old content must be time, as well as power sensitive. Knowing the content file sizes in advance, a client device can make intelligent choices when replacing content on the device and at the same time make better reception power management. 
     Once the bandwidth has been estimated the size of content to be broadcast can be estimated. 
     Referring to  FIGS. 3 and 4 , consider a scenario where Clip A is going to be broadcast at some time in the near future T 1  and a client device  400  contains stored file content Clips B, C and D in an memory area  402  of the client device. The broadcast time of Clip A is available to the client by parsing the schedule ESG information it received from an earlier received transmission. The receiver (client device  400 ) has to make a decision on whether or not to store Clip A. For purposes of this example, we assume the Clips B, C and D together take up a good percentage of the storage space on the device. The memory area  402  in this example can be any type of known memory for storing content, and or programming information relating to the operation of the client device. In one implementation, the memory  402  contains the programming to implement the methods and processes of the present principles disclosed herein. 
     The client device  400  uses the size of Clip A to make a decision whether to store the clip. Using the estimated file size of Clip A, the client can make the decision in advance to either store or not store Clip A. For example without knowing the actual size of Clip A the client device would switch on at time T 1  and receive whole of Clip A. After completion of the file download (at time T 2 ), the file size of the clip is known. Based on this file size and other characteristics of the Clip A (e.g. keywords etc.), the client device can either store Clip A and replace some existing content (Clip B, C and D) or discard Clip A. Discarding Clip A after having used the power to receive it, is wasteful in terms of power usage and hence reduces battery life. 
     Using the estimated file size of Clip A, the client device can make the decision in advance to either store or not store Clip A. The device does not have to be switched on during the broadcast of Clip A if it decides it doesn&#39;t need to store the clip, thereby reducing the power usage of the device by shutting off its reception components for that period. 
     Referring to  FIG. 5 , there is shown the method  500  where the reception module (or client device) needs to be switched on regardless of whether the content was going to be stored or not. This is primarily due to the fact that the reception module  504  is started immediately after the ESG schedule is received  502 . The content is received ( 506 ), and a determination is made ( 508 ) whether the receiving of the content has ended. When the content is fully received, the downloaded size is calculated  510 , and the client device decides whether to store the content ( 512 ). If no, the received content is deleted ( 514 ) and the device returns to the receive schedule state. If yes, the received content is stored ( 516 ) and the device returns to the receive schedule state. As mentioned above, this method requires the client or user device to be powered on and in reception mode at all times, and may result in an inefficient use of battery power, especially when the user determines to delete the received content, after complete reception. 
       FIG. 6 a    shows the method  600  according to an implementation of the present principles, where power usage at the client device is more efficiently managed. Initially, the bandwidth of the communication channel is determined ( 602 ). As mentioned above, this determination can be either an actual, known BW, or can be estimated using any suitable known method for estimating the bandwidth of the channel. Once the bandwidth is known, the file (content) size can be estimated ( 604 ) using the previously received ESG information. When the file size has been determined, or estimated, the smart client device can determine ( 606 ) whether or not to download (store) the file (content) at the client device without requiring the user&#39;s intervention. This determination is made base on the user preferences previously established by the user in the user profile stored in the memory of the client device. 
       FIG. 6 b    shows a more detailed block diagram of steps  604  and  606  of  FIG. 6 a   . Initially the schedule ESG is received  608 . The received schedule list is iterated over or reviewed for new future content broadcasts ( 610 ). The file size is then calculated (or estimated) from the schedule information using the broadcast start and stop times ( 612 ). With this information, the client device can be presented with the decision to store, or not store the content ( 606 ). If the client device says “yes”, then the reception module is powered on, and reception of the new content is started ( 614 ). The client device starts receiving the content  616 , and once all the content is received ( 618 ), the content is stored  620  and the process returns to the beginning. The client device will automatically power down upon completion of the process. Generally speaking, the client device will power down if the device is not active. If the client device is in an active state, it will power down its receiving hardware components. 
     In accordance with one aspect of the present principles, the steps in calculating the file size over a varying or constant bandwidth channel are: From ESG:
 
Duration of Broadcast=EndBroadcastTime−StartBroadcastTime.
 
File Size=Bandwidth of Channel*Duration of Broadcast.
 
     It is to be understood that the present principles may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. Preferably, the present principles may be implemented as a combination of hardware and software. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage device. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (CPU), a random access memory (RAM), and input/output (I/O) interface(s). The computer platform also includes an operating system and microinstruction code. The various processes and functions described herein may either be part of the microinstruction code or part of the application program (or a combination thereof) that is executed via the operating system. In addition, various other peripheral devices may be connected to the computer platform such as an additional data storage device and a printing device. 
     It is to be further understood that, because some of the constituent system components and method steps depicted in the accompanying Figures are preferably implemented in software, the actual connections between the system components (or the process steps) may differ depending upon the manner in which the present principles is programmed. Given the teachings herein, one of ordinary skill in the related art will be able to contemplate these and similar implementations or configurations of the present principles.