Patent Publication Number: US-7715827-B2

Title: Mobile communication terminal and method for calculating media play time of the mobile communication terminal

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
   This application claims the benefit of Korean Patent Application Nos. 10-2005-0105565, filed on Nov. 4, 2005, and 10-2006-0006933, filed on Jan. 23, 2006, each of which is hereby incorporated by reference in its entirety. 
   BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   The present invention relates to a mobile communication terminal. More specifically, embodiments of the invention relate to systems and methods for calculating a media play time for a media file on a mobile communication terminal. 
   2. Discussion of the Related Art 
   A progressive download service is a service that is capable of downloading a multimedia file, such as a video and audio file, and that simultaneously presents the downloaded multimedia file to an end user. 
   There are a variety of mobile communication terminal solutions for supporting this type of service. For example, a Packet Video (PV) Solution is manufactured by the Packet Video Company, located in San Diego, Calif. Also, a QTV™ Solution is manufactured by Qualcomm Corporation headquartered in San Diego, Calif. 
   The PV Solution product downloads a file having a “pvx” extension from a content server, calculates what percentage of a total data size is represented by the downloaded data size, and provides a user with the calculated result. The PV Solution is designed, therefore, to provide the user with information based primarily on the downloaded data size. However, although a specific media file has a specific data capacity, different play times of the specific media file may occur due to varying image quality. As a result, the PV Solution has difficulty in identifying a correct media play time using only the data size of the media file. 
   Similarly, the QTV™ Solution product implements a specific algorithm designed to determine whether data to be presented is downloaded on the basis of a location of currently-presented data. Therefore, the QTV™ Solution has difficulty in identifying a correct play time of the currently-downloaded data for similar reasons as in the above-mentioned PV Solution. 
   SUMMARY 
   Accordingly, the present invention relates to a mobile communication terminal and, more specifically, to systems and methods for calculating a media “play time” for a media file on a mobile communication terminal. The play time of a downloaded media file is calculated using not only downloaded data size information of the media file, but also using information extracted from the downloaded media file. 
   In one example embodiment, a mobile communication terminal includes a communication unit, a controller, and a display. The communication unit is capable of downloading a media file from a media server. The controller is configured to calculate a first data size on the basis of information extracted from the media file itself. The controller is also configured to calculate a media play time of the media file on the mobile communication terminal. This calculation is based on the first data size and on a second data size that is downloaded in connection with the media file. In example embodiments, the display is configured to display the media play time to the user. 
   In another example embodiment, a method for calculating a media play time of a media file using a mobile communication terminal capable of downloading a media file from a media server includes: requesting, by a mobile communication terminal, a media file from a media server; if the media server transmits the media file, downloading, by the mobile communication terminal, the media file; determining a first data size on the basis of information extracted from the media file; calculating a play time on the basis of the first data size and a second data size downloaded in connection with the media file; and then displaying the play time. 
   In yet another example embodiment, a method for facilitating the calculation of a media play time using a mobile communication terminal includes: encoding a media file; calculating a first data size on the basis of information extracted from the media file; and recording the calculated first data size in the media file. 
   Additional advantages, objects, and features of the invention will be set forth in the description which follows and in part will become apparent upon examination of the following or may be learned from practice of the invention. The objectives and other advantages of the invention may be realized and attained by the structure particularly pointed out in the written description and claims hereof as well as the appended wings. 
   It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this application, disclose embodiments of the invention and together with the description serve to explain example principles of the invention. In the drawings: 
       FIG. 1  is a block diagram disclosing a mobile communication terminal according to a first example embodiment of the present invention; 
       FIG. 2  is a flow chart disclosing an example method for calculating a media play time according to a first example embodiment of the present invention; 
       FIG. 3  is a flow chart disclosing a call process between a mobile communication terminal and a media server according to a first example embodiment of the present invention; 
       FIG. 4  exemplarily discloses an example display image displayed on a display of a mobile communication terminal according to the present invention; 
       FIG. 5  is a flow chart disclosing an example method for facilitating calculation of a media play time according to a second example embodiment of the present invention; 
       FIG. 6  is a block diagram disclosing a mobile communication terminal according to a second example embodiment of the present invention; 
       FIG. 7  is a flow chart disclosing an example method for calculating a media play time according to a second example embodiment of the present invention; and 
       FIG. 8  is a flow chart disclosing a call process between a mobile communication terminal and a media server according to a second example embodiment of the present invention. 
   

   DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS 
   Reference will now be made in detail to example embodiments of the present invention which are disclosed in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts. 
     FIG. 1  is a block diagram disclosing one example of a mobile communication terminal  110  that can be used in connection with the present invention. As is shown, the mobile communication terminal  110  includes a controller  112 , a communication unit  111 , a memory  113 , and a display  114 . 
   The communication unit  111  is configured to, among other functions, download a media file from a media server (not shown). In this case, the media server is a server capable of providing the mobile communication terminal  110  with the media file using one of a variety of communication schemes. The memory  113  is a storage unit for storing the media file downloaded from the media server via the communication unit  111 . The display  114  is a display for displaying information about the media file, such as a total “play time.” If the media file is an image or video file, the above-mentioned media may also be displayed on the display  114 . 
   The controller  112  is configured so as to be capable of programmably calculating a data-size-per-second on the basis of information extracted directly from the contents of a media file that is retrieved via the communication unit  111 . The controller  112  is also configured so as to calculate a “play time” of the downloaded media file. This calculation is performed by using the calculated data-size-per-second, and a downloaded data size of a media file. This play time is then displayed to a user via the display  114 . 
   In example embodiments, the media file manipulated by the controller  112  may have a file format based on 3GPP (3rd Generation Partnership Project). A 3GPP formatted file is formed of a plurality of objects, each of which is referred to as a “box”. A box is an object-oriented building block defined by a single unique identifier (ID) having a unique length. Also, the above-mentioned box may also be called an “atom”. All data associated with a media file is contained in the boxes of the media file. 
   Some representative boxes contained in the 3GPP media file include, for example, a movie box (“moov”), a media data box (“mdat”), a movie header box (“mvhd”), and a track box (“trak”). 
   The “mvhd” is a box including overall information associated with characteristics of the “moov”. The “moov” includes a single “mvhd”. A variety of information is contained in the “mvhd” such as a creation time of the “moov”, a modification time of the “moov”, a timescale of the “moov”, a duration of the “moov”, a rate of the “moov”, and a volume of the “moov”. 
   The “trak” is a box including one or more tracks. A single track corresponds to either a sequence of images or a sampled audio. Therefore, a “trak” is classified as either a video “trak” or an audio “trak”. The “moov” includes at least one “trak”. 
   Each “trak” includes a track header box (“trhd”), a track reference box (“tref”), a media box (“mdia”), an edit box (“edts”), and a user data box (“udta”). 
   The above-mentioned “mdia” includes a media header box (“mdhd”), a handler reference box (“hdlr”), and a media information box (“minf”). The “mdhd” contains overall information associated with characteristic information of a corresponding media. The “minf” includes all objects containing characteristic information of a corresponding media. 
   The above-mentioned “minf” includes a sample data box (“stbl”). The “stbl” is a box including “time and data indexing” of media samples contained in a single track. The “stbl” includes a sample description box (“stsd”) and a sample size box (“stsz”). 
   The “stsz” includes information specifying the number of samples and other information specifying the size of individual samples. In this case, the sample size is expressed in the form of byte units. The number of total samples of the media file is equal to the number of samples, or in other words, the sample count. 
   With reference to the above-mentioned samples, a single sample may be, for example, a single video frame, a series of consecutive video frames, or audio data of a compressed section. 
   In an example implementation, the controller  112  extracts duration information and timescale information from the “mvhd” of the media file in order to calculate the data-size-per-second, and extracts sample count and sample size from the “stsz”. The controller  112  divides the duration into a plurality of timescale units, and calculates a total running time on the basis of the divided result. Also, the controller  112  divides the sample count by the total running time, and calculates the sample-count-per-second on the basis of the divided result. 
   The controller  112  adds up each the above-mentioned sample-count-per-sec of the sample size, such that it calculates the data-size-per-sec on the basis of the added result. In the case where the sample size(s) have only one unique value, the controller  112  multiplies the sample size(s) sample-count-per-sec times. In cases where the sample size is an array of different values, the controller  112  sequentially adds up each of the sample-count-per-secs of the array of the sample sizes. Then, the controller  112  compares the above-mentioned data-size-per-sec with the downloaded data size of a current media file, and calculates a play time according to the result of the comparison. 
     FIG. 2  is a flow chart disclosing one example method for calculating a media play time.  FIG. 3  is a flow chart disclosing a call process between a mobile communication terminal and a media server according to a first example embodiment of the present invention. With reference now to  FIGS. 2 and 3 , the various acts S 110  to S 160  disclosed in  FIGS. 2 and 3  will be discussed in detail. 
   The mobile communication terminal  110  requests a specific media file from the media server  210  at S 110 . If the media server  210  transmits a media file, the mobile communication terminal  110  downloads the media file at S 120 . 
   The mobile communication terminal  110  extracts the duration information and the timescale information from the media file, and calculates a total running time, using Equation 1, at S 122 . The duration information and the timescale information may be extracted from the movie header box of the media file.
 
Total Running Time[sec]=Duration[sec]/timescale  [Equation 1]
 
   The mobile communication terminal  110  extracts the sample count and the sample size at S 124 . In this case, the sample count and the sample size may be extracted from the sample size box “stsz” of the media file. 
   The sample size may be configured in the form of a table array composed of several sequential constant values instead of a single constant value. A representative example of the above-mentioned sample size is disclosed in Table 1: 
   
     
       
         
             
           
             
               TABLE 1 
             
             
                 
             
             
               Sample Size 
             
             
                 
             
           
          
             
                 
             
          
         
         
             
             
          
             
                 
               Sample[0] = 7 Bytes 
             
             
                 
               Sample[1] = 7 Bytes 
             
             
                 
               Sample[2] = 6 Bytes 
             
             
                 
               Sample[3] = 9 Bytes 
             
             
                 
               Sample[4] = 8 Bytes 
             
             
                 
               Sample[5] = 8 Bytes 
             
             
                 
               Sample[6] = 6 Bytes 
             
             
                 
               Sample[7] = 6 Bytes 
             
             
                 
               Sample[8] = 7 Bytes 
             
             
                 
                 
             
          
         
       
     
   
   The mobile communication terminal  110  next calculates the sample-count-per-sec at S 126  using the total running time calculated at S 122  and the sample count extracted at S 124 , as disclosed in Equation 2:
 
Sample count per sec [sec]=sample count/total running time [sec]  [Equation 2]
 
   Then, the mobile communication terminal  110  adds up each the sample-count-per-sec of S 126  of the extracted sample size of S 122 , and calculates the data-size-per-sec on the basis of the added result at S 130 , using Equation 3: 
                   dt   ⁢           ⁢     size   ⁡     [   m   ]         =       ∑     i   =   0       n   -   1       ⁢           ⁢     Sample   ⁡     [     mn   +   i     ]                 [     Equation   ⁢           ⁢   3     ]               
where:
 
   m=0,1,2,3, . . . , 
   n=sample-count-per-sec, 
   Sample[mn+i]=mn+i th  sample size of an array of the sample sizes, 
   dtsize[m]=m th  data-size-per-sec 
   If the sample size is equal to the sample size disclosed in Table 1, the data-size-per-sec can be represented by Table 2: 
   
     
       
         
             
             
             
           
             
                 
               TABLE 2 
             
             
                 
                 
             
             
                 
               Sample Size 
               Data-size-per-sec 
             
             
                 
                 
             
           
          
             
                 
               Sample[0] = 7 Bytes 
               dtsize[0] = 20 Bytes 
             
             
                 
               Sample[1] = 7 Bytes 
             
             
                 
               Sample[2] = 6 Bytes 
             
             
                 
               Sample[3] = 9 Bytes 
               dtsize[1] = 25 Bytes 
             
             
                 
               Sample[4] = 8 Bytes 
             
             
                 
               Sample[5] = 8 Bytes 
             
             
                 
               Sample[6] = 6 Bytes 
               dtsize[2] = 20 Bytes 
             
             
                 
               Sample[7] = 7 Bytes 
             
             
                 
               Sample[8] = 7 Bytes 
             
             
                 
                 
             
          
         
       
     
   
   The mobile communication terminal  110  measures the size of currently-downloaded data at S 140 , and calculates a play time on the basis of the measured downloaded data size and the calculated data-size-per-sec at S 150 . 
   In more detail, the mobile communication terminal  110  accumulates the data-size-per-sec calculated at S 140 , and calculates the sum of the accumulated data-size-per-sec. Then, the mobile communication terminal  110  compares the calculated sum with the measured data-size-per-sec of S 140 , such that it calculates a play time according to the comparison result. 
   If the data-size-per-sec calculated at S 130  is equal to data disclosed in Table 2, the accumulated sum of the above-mentioned data-size-per-sec can be represented by Table 3: 
   
     
       
         
             
             
             
           
             
                 
               TABLE 3 
             
             
                 
                 
             
             
                 
                 
               Sum of accumulated data 
             
             
                 
               Data-size-per-sec 
               sizes 
             
             
                 
                 
             
           
          
             
                 
               Dtsize[0] = 20 Kbytes 
               1 second 20 Kbytes 
             
             
                 
               Dtsize[1] = 25 Kbytes 
               2 seconds 45 Kbytes 
             
             
                 
               Dtsize[2] = 20 Kbytes 
               3 seconds 75 Kbytes 
             
             
                 
                 
             
          
         
       
     
   
   For example, if the data size information measured at S 140  is 50 Kbytes, the data size of 50 Kbytes is higher than 45 Kbytes corresponding to the 2-seconds data size, and is less than 75 Kbytes corresponding to the 3-seconds data size, such that a play time at the measured time point of S 140  is 2 seconds. 
   The play time calculated at S 150  is displayed on the display at S 160 . 
     FIG. 4  exemplarily discloses an example display image displayed on a display of a mobile communication terminal. Referring to  FIG. 4 , it can be recognized that the currently-downloaded data size is 50 Kbytes whereas a total data size of the media file is 694 Kbytes. It can also be recognized that a play time of the currently-downloaded media file is 2 seconds whereas a total running time of the media file is 24 seconds. 
   The above-mentioned steps S 122 -S 150  are repeated during the download time of the media file. The higher the downloaded data size of the media file, the longer the play time of the media file. 
     FIG. 5  is a flow chart disclosing an example method for facilitating the calculation of a media play time according to a second example embodiment of the present invention. With reference now to  FIG. 5 , the various acts S 210  to S 260  disclosed in  FIG. 5  will be discussed in detail. 
   A media server or a media encoder encodes the media file at S 210 . In this case, the media server or the media encoder may encode the media file according to the MPEG-4 standard. 
   Thereafter, the media server extracts duration information and timescale information from the media file, and calculates a total running time using Equation 3 at S 220 :
 
Total Running Time[sec]=Duration[sec]/timescale  [Equation 3]
 
   Then, the media server extracts the sample count and the sample size from the media file at S 230 . 
   Next, the media server calculates the sample-count-per-sec at S 240  using the total running time calculated at S 220  and the sample count extracted at S 230 , as disclosed in Equation 4:
 
Sample count per sec [sec]=sample count/total running time [sec]  [Equation 4]
 
   The media server adds up each the sample-count-per-sec of S 240  of the extracted sample size of S 230 , and calculates the data-size-per-sec on the basis of the added result at S 250 . 
   The media server records the calculated data-size-per-sec in the media file at S 260 . In the case where the media file has the 3GPP format, the data-size-per-sec can be recorded in the user data box “udta” of the media file. 
   Therefore, the media server creates a media file using the acts S 210 -S 260 . The media file thus created contains the data-size-per-sec. This recorded data-size-per-sec can be extracted from the media file by a mobile communication terminal and used in the calculation of a media play time by the mobile communication terminal. Thus, the acts S 210 -S 260  can help facilitate the calculation of a media play time using a mobile communication terminal once the media file has been downloaded to the mobile communication terminal. 
     FIG. 6  is a block diagram disclosing a mobile communication terminal  120  according to a second example embodiment of the present invention. The mobile communication terminal  120  includes a controller  121 , a communication unit  122 , a memory  123 , and a display  124 . 
   The controller  121  extracts the data-size-per-sec from the media file and calculates a play time on the basis of the extracted data-size-per-sec and downloaded data size information of the media file. The above-mentioned data-size-per-sec may be extracted from the user data box “udta” of the media file. 
   In more detail, the controller  121  measures the currently-downloaded data size of the media file, compares the sum of accumulated data sizes with the currently-downloaded data size, and calculates a play time according to the comparison result. 
   The communication unit  122  downloads a media file from a media server. In this case, the media server is a server capable of providing the mobile communication terminal  120  with the media file, and may be a server capable of manufacturing a media file using the above-mentioned steps S 210 -S 260  disclosed in  FIG. 5 . The memory  123  is a storage unit for storing the downloaded media file. The display  124  is a display for displaying a play time of the media file. If the media file is an image or video file, the above-mentioned media may be further displayed on the display  124 . 
     FIG. 7  is a flow chart disclosing an example method for calculating a media play time according to a second example embodiment of the present invention.  FIG. 8  is a flow chart disclosing a call process between a mobile communication terminal and a media server according to a second example embodiment of the present invention. With reference now to  FIGS. 7 and 8 , the various acts S 310  to S 360  disclosed in  FIGS. 7 and 8  will be discussed in detail. 
   The mobile communication terminal  120  requests a specific media file from the media server  220  at S 310 . Upon receiving the request from the mobile communication terminal  120 , the media server  220  transmits a media file, and the mobile communication terminal  120  downloads the media file at S 320 . 
   The mobile communication terminal  120  extracts the data-size-per-sec from the media file at S 330 . The mobile communication terminal  120  may extract the data-size-per-sec from the user data box “udta” of the media file. 
   Then, the mobile communication terminal  120  measures the size of currently-downloaded data at S 340 . The mobile communication terminal  120  calculates a play time on the basis of the measured downloaded data size and the calculated data-size-per-sec at S 350 . 
   In more detail, the mobile communication terminal  120  compares the sum of accumulated data-size-per-sec with the downloaded data size, such that it calculates a play time according to the comparison result. The calculated play time is displayed on the display at S 360 . The exemplary display image displayed on the display of the mobile communication terminal as disclosed in  FIG. 4  is also suitable for use with this second example embodiment of the present invention. 
   As apparent from the above description, the example methods for calculating the media file play time according to the present invention have the following effects. Firstly, the example media play time calculation methods can provide a user with a media play time using the downloaded data size and the media file information, such that the user can recognize a correct play time of the media file. Secondly, although the download of a data file may be delayed by network problems and the presentation of the data file may therefore be interrupted, the above-mentioned media play time calculation methods can use a pre-calculated play time to determine whether the data file can be presented by the next downloaded data received after the interruption of data file presentation, such that the amount of resources required for determining the possibility of playable data and a playback time point of the data can be reduced. 
   Although the present invention has exemplarily disclosed the above-mentioned first and second example embodiments, it should be noted that the scope of the present invention is not limited to the above-mentioned example embodiments, and can be applied to other examples as necessary. 
   It will be apparent that various modifications and variations can be made in the present invention without departing from the spirit or scope of the inventions. Thus, it is intended that the present invention covers the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents.