Abstract:
The invention is directed to the provision of a moving image data playback method, and more particularly, an MPEG data playback method that can randomly access MPEG data stored at a VBR. The playback method comprises: storing in a table an average bit rate computed from time information at the beginning and end of stored moving image data; detecting and storing the time information and position information of randomly accessible picture groups one at the beginning of the moving image data and the other at the end thereof, and computing a picture group unit time from the number of frames between adjacent picture groups and storing the result in the table; computing a point to be accessed, based on the average bit rate and other information stored in the table; and starting playback from the computed point to be accessed, and storing in the table the time information and position information of the picture groups detected during the playback and the average bit rate between each picture group computed from the detected time information and position information.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates to a method and apparatus for playing-back MPEG (Moving Picture Experts Group) data, and more particularly to an MPEG data playback method and apparatus that can randomly access MPEG data stored at a variable bit rate (VBR) and can perform normal playback, reverse playback, fast forward playback, or fast reverse playback from any desired point.  
         [0003]     2. Description of the Related Art  
         [0004]     With the decreasing prices of MPEG encoders, and with increasing speeds of LANs enabling transmission of large-capacity data, MPEG compression schemes are widely used today. In MPEG1 and MPEG2, which provide methods for compressing moving images for storage, the compression is done on the assumption that the data will be played back in the forward direction along the time axis.  
         [0005]     There are two methods of compression: constant bit rate (CBR) compression, in which moving images are compressed at a fixed bit rate, and variable bit rate (VBR) compression, in which, in order to maintain near constant image quality, scenes where compression efficiency is low are compressed at higher bit rates and conversely, scenes where compression efficiency is high are compressed at lower bit rates.  
         [0006]     In the MPEG schemes, a unit called a GOP (Group of Pictures) is defined as a point that makes random access possible. A GOP begins with an I frame which can be decoded without referring to a previous or future frame, and the I frame is followed by a sequence of P and B frames which refer to previous and/or future frames. Therefore, an image can be played-back in the forward direction from a GOP point; when playing-back an MPEG moving image from an arbitrary point, the image is played back from a GOP point in the neighborhood of that arbitrary point.  
         [0007]     In the case of an MPEG file stored at a CBR, any desired GOP point can be found by simple calculation, because the GOP size is determined by the constant bit rate and the number of frames constituting one GOP. On the other hand, in the case of an MPEG file stored at a VBR, it is not easy to find the desired GOP point because the GOP size varies from one GOP to another.  
         [0008]     Therefore, in the case of arbitrary stored data to which index information indicating the location of each GOP point is not appended, such as VBR compressed MPEG data downloaded via a network, the entire data is scanned to identify the location of each GOP point, and the GOP points are stored in the form of an index file or like information. Then, by seeking the desired GOP point by using the thus created information, special playback other than playback in the forward direction from the beginning of the data is performed.  
         [0009]     As described above, when performing special playback of arbitrary MPEG stored data and, in particular, VBR compressed MPEG stored data, as an index file or the like has to be created prior to the playback, there has been the problem that it takes much time to start the playback in the case of stored data with a high average bit rate or a large amount of stored data.  
       SUMMARY OF THE INVENTION  
       [0010]     In view of the above problem, it is an object of the present invention to provide an MPEG data playback method, and an apparatus, adapted to constantly improve the search accuracy of random access points during playback of arbitrary MPEG stored data; for this purpose, when playing back arbitrary MPEG stored data, an average bit rate is calculated and, for a portion not yet played-back, the access point to be searched for is predicted, while, for a portion already played back, the GOP point value detected at the time of the playback of that portion is used and the predicted data for special playback is dynamically updated using the GOP point value. This achieves quick and accurate searching for a random access point, regardless of the file structure such as CBR or VBR or the presence or absence of an index file.  
         [0011]     According to the present invention, there is provided a moving image data playback method comprising: storing in a table an average bit rate computed from time information at the beginning and end of stored moving image data; detecting and storing the time information and position information of randomly accessible picture groups one at the beginning of the moving image data and the other at the end thereof, and then computing a picture group unit time from the number of frames between adjacent picture groups and storing the result in the table; computing a point to be accessed, based on the average bit rate stored in the table and on the time information and position information of the picture groups and the picture group unit time stored in the table; and starting playback from the computed point to be accessed, and successively storing in the table the time information and position information of the picture groups detected during the playback and the average bit rate between each picture group computed from the detected time information and position information.  
         [0012]     According to the present invention, there is also provided a moving image data playback apparatus for playing-back stored moving image data, comprising: means for computing an average bit rate, for searching, by extracting time information at the beginning and end of the moving image data; means for starting playback from an access point computed using the average bit rate for searching; means for successively storing prescribed playback information relating to the moving image data and detected during the playback; and means for correcting the average bit rate, for searching, by using the playback information stored for an already played back portion. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]     The present invention will be more clearly understood from the description as set forth with reference to the accompanying drawings.  
         [0014]      FIG. 1  is a diagram showing one configuration example of an MPEG data playback apparatus according to the present invention.  
         [0015]      FIG. 2A  is a diagram showing one example of MPEG data format (1).  
         [0016]      FIG. 2B  is a diagram showing one example of MPEG data format (2).  
         [0017]      FIG. 3  is a diagram showing the relationship between video data and bit rate in VBR.  
         [0018]      FIG. 4  is a diagram showing one example of a control flow when starting playback of stored data.  
         [0019]      FIG. 5  is a diagram showing one example of a control flow when playing back in the forward direction.  
         [0020]      FIG. 6  is a diagram showing one example of a control flow (part 1) initiated upon reception of a seek instruction.  
         [0021]      FIG. 7  is a diagram showing one example of the control flow (part 2) initiated upon reception of the seek instruction.  
         [0022]      FIG. 8  is a diagram showing one example of a control flow for consolidating a management table.  
         [0023]      FIG. 9  is a diagram showing one example of a control flow for converting the time specified by the seek instruction into time that matches the GOP unit.  
         [0024]      FIG. 10  is a diagram showing one example of the management table created when starting playback.  
         [0025]      FIG. 11  is a diagram showing one example of updating the management table during playback in the forward direction.  
         [0026]      FIG. 12  is a diagram (part 1) showing one example of finding seek byte position from the management table.  
         [0027]      FIG. 13  is a diagram (part 2) showing one example of finding seek byte position from the management table.  
         [0028]      FIG. 14  shows one example of consolidation of the management table. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0029]      FIG. 1  is a diagram showing one configuration example of an MPEG data playback apparatus according to the present invention.  
         [0030]     In  FIG. 1 , a file  1  is constructed on an auxiliary storage device such as a hard disk, and stores MPEG data such as MPEG1 or MPEG2-PS downloaded via a network. An external controller  3  issues an instruction, specifying, for example, an image to be played back and playback mode such as special playback, to a DEMUX section  4 . Under control of the DEMUX section  4 , a stored data reading section  2  reads out all or part of the MPEG data stored in the file  1  and transfers the readout data to the DEMUX section  4 .  
         [0031]     The DEMUX section  4 , under instruction from the external controller  3 , retrieves via the stored data reading section  2  the MPEG data to be played back in normal or special playback mode, and demultiplexes the MPEG data into MPEG video data and MPEG audio data. The demultiplexed MPEG video data and MPEG audio data are supplied to a video decoder  8  and an audio decoder  9 , respectively.  
         [0032]     The video decoder  8  applies decoding such as the inverse DCT transform to the received MPEG video data, and outputs the decoded video data. The audio decoder  9  also applies similar decoding to the MPEG audio data, and outputs the decoded audio data.  
         [0033]     The above configuration is the same as a conventional MPEG data playback apparatus, but the present invention differs from the conventional apparatus by the inclusion of the following configuration. That is, a PTS/DTS detector  5  and a GOP detector  6  are provided within the DEMUX section  4 , and a management table  7  is attached to the DEMUX section  4 . Before explaining the PTS/DTS detector  5 , GOP detector  6 , and management table  7 , an outline of the MPEG data that is relevant to them will be given below.  
         [0034]      FIGS. 2A and 2B  shows one example of the MPEG data format.  FIG. 3  shows the relationship between video data and bit rate in VBR.  
         [0035]      FIG. 2A  shows one example of the MPEG1-SYSTEM or MPEG2-PS (Program Stream) data format, which begins with a pack header and ends with an end code (not shown). The pack generally comprises a plurality of packets, and the pack header at the beginning of the pack carries an MPEG1-SYSTEM identification code “00” or MPEG2-PS identification code “01”.  
         [0036]     In a system header, parameters for the entire stream are described, and its rate_bound field defines the bit rate; the other fields carry various parameters describing the number of video channels, the number of audio channels, etc. The packet header of each video packet or audio packet carries parameters such as PTS (Presentation Time Stamp), an information unit for managing the time of playback output, and DTS (Decoding Time Stamp), an information unit for managing the time of decoding; each information unit is constructed from a 33-bit cyclic counter and can manage a time of up to about 26 hours, at maximum.  
         [0037]      FIG. 2B  shows one example of VBR video stream size. As earlier described, the GOP (Group of Pictures) has a structure that includes at least one intracoded frame (I frame) in order to make random access possible. One GOP comprises a sequence header and a GOP field, and the GOP field contains at least one I frame and a plurality of B and P frames; the duration of each group is usually about 0.5 second (15 frames).  
         [0038]     In the case of a VBR, as the GOP size varies according to the amount of motion in the image, the bit rate is varied as shown by a solid line in  FIG. 3  to maintain the frame transfer rate (30 frames/second). On the other hand, in the case of CBR, the bit rate is fixed to the preset maximum as shown by a dashed line in  FIG. 3 , and dummy data (padding data) is inserted in low bit rate data in order to maintain the GOP size constant.  
         [0039]     Turning back to  FIG. 1 , the PTS/DTS detector  5  detects the PTS (DTS) information contained in the packet header of each video packet. The GOP detector  6  detects each GOP which provides a random access point. The management table  7  is a data table to which additions, changes, and updates are made as needed at the time of normal playback as well as special playback, based on the information detected by the PTS/DTS detector  5  and the GOP detector  6 .  
         [0040]     An embodiment of the present invention will be described below by focusing on the control flows of FIGS.  4  to  9  while also referring to the management table examples shown in FIGS.  10  to  14 .  
         [0041]     (1) Starting Playback of Stored Data  
         [0042]      FIG. 4  shows one example of the control flow when starting playback of the stored data.  FIG. 10  shows one example of a playback management table which is created first prior to the start of playback of the stored data.  
         [0043]     When an instruction to playback a specified MPEG file is received from the external controller  3 , the DEMUX  4  first controls the stored data reading section  2  to read the beginning portion of the specified MPEG file from the file  1 , and thus retrieves the contents of the rate_bound field in the system header, based on which the maximum bit rate of the store data is computed (S 101 ). The computed maximum bit rate (in the illustrated example, 6 Mbps) is stored in the special playback management table as the data that defines the maximum rate for playback ( FIG. 10 ).  
         [0044]     Next, the PTS or DTS of the GOP in the video packet at the beginning of the file is retrieved, and its byte position is also retrieved (S 102 ). Further, the PTS or DTS of the GOP in the second video packet from the beginning of the file is retrieved, and its byte position is also retrieved. Then, one-GOP duration time is calculated from the number of frames between the two GOPs, and the calculated value (in the illustrated example, 0.5 second) is also stored in the special playback management table (S 103 ).  
         [0045]     Generally, in MPEG stored data, whether it is CBR or VBR, the number of frames within one GOP is the same, though the amount of data varies from GOP to GOP; therefore, in many cases, the GOP time unit remains the same for each GOP. As a result, the one-GOP duration time information is effective information for special playback. The above-described maximum bit rate and the one-GOP duration time are stored as fixed values and will not be changed or updated after that.  
         [0046]     Finally, scanning is started from the position the maximum bit rate×α (the time with which the final GOP can be retrieved) back from the end of the file, and the PTS or DTS of the GOP in the final video packet and its byte position are retrieved (S 104 ). From this information and the earlier obtained first GOP information, the total playback time of the file is calculated as shown below (S 105 ).  
         [0047]     Here, let the maximum bit rate be denoted by Max_Bit_Rate, the first PTS (DTS) by First_PTS, the first byte position by First_Byte, the last PTS (DTS) by Last_PTS, the last byte position by Last_Byte, and the total playback time by Total_Time. Since PTS (DTS) is a 33-bit cyclic counter with units of 90 KHz, the total playback time can be described by the following equation. The following equation can also calculate the time exceeding the maximum 26 hours that can be specified by 33 bits.  
                                                                                                     if (First_PTS &lt;= Last_PTS) {           Total_time = (Last_PTS − First_PTS)/90000                } else {                Total_time = (Last_PTS + 0x200000000 −                First_PTS)/90000           }           while (Max_Bit_Rate &lt; (Last_Byte − First_Byte) *           8/Total_Time) {                Total_Time += 0x200000000/90000                }                      
 
         [0048]     In the example of  FIG. 10 , the average bit rate (in the illustrated example, 4 Mbps) is computed from the byte size (total byte count) of the file by using the total playback time computed by the above equation. The GOP time of each of the first and last GOPS, their byte positions, and the average bit rate between the first and last GOPs are thus determined. By acquiring the minimum information required for file playback prior to the start of the playback as described above, the initial management table  7  for special playback of the MPEG file is created (S 106 ).  
         [0049]     In the present invention, as the average bit rate of the data is calculated only from the MPEG stored data, and as only the starting and ending portions of the stored file need be searched, the amount of search at the start of playback is reduced and, therefore, the playback is started more quickly than in a conventional system that requires the creation of an index file.  
         [0050]     (2) Playing Back in Forward Direction From the Top  
         [0051]      FIG. 5  shows one example of the control flow when playing back in the forward direction.  FIG. 11  shows one example of updating the management table  7  during playback in the forward direction.  
         [0052]     When an instruction to play back in the forward direction is received from the external controller  3 , the DEMUX  4  controls the stored data reading section  2  to read a sequence of stored data sequentially for decoding and playback (S 201 ). During the decoding/playback process (S 204 ), the bit rate of each GOP is computed from the actually detected time of each GOP and the byte position of the stored data of each GOP, and the stored contents of the management table are successively updated by the resulting information (S 202  and  203 ).  
         [0053]     In the example of  FIG. 11 , the time of each of the second, third, and subsequent GOPs, the byte position of each GOP, and the average bit rate of each GOP, computed based on the information detected by the GOP detector  6  during the forward playback process, are inserted and stored between the starting GOP and the ending GOP.  
         [0054]     (3) Seek Instruction Occurs at Time for Which GOP Byte Position is Not Registered in Management Table  
         [0055]      FIGS. 6 and 7  show one example of the control flow initiated upon reception of a seek instruction.  FIGS. 12 and 13  show one example of finding seek byte position from the management table  7 .  
         [0056]     In  FIG. 6 , as the seek instruction from the external controller  3  is usually given in the form of time information with 0 indicating the playback start picture at the beginning of the file (S 301 ), the DEMUX  4  calculates the PTS (DTS) to be sought as shown below by using the management table  7 . 
 
 PTS ( DTS )=(First —   PTS +Specified time(seconds)/90000) &amp; 0x1 FFFFFFFF  
 
         [0057]     If it is found, as a result of the above calculation, that the byte position information corresponding to the time to be sought already exists in the management table  7 , the playback is started by directly accessing that byte position (S 302 , S 306 , and S 307 ). The control flow after starting the playback is the same as that shown in  FIG. 5 .  
         [0058]     On the other hand, if it is found as a result of the above calculation that the byte position information corresponding to the time to be sought does not exist in the management table  7 , then it is determined whether any currently known GOP time and its byte position exist before or after or near the calculated time (S 303 ). If they do not exist, the number of bytes is calculated by multiplying the “average bit rate” of the corresponding space by the “difference between the specified time and the known GOP time”, and the byte position of the GOP is computed, to determine the byte position to be accessed (S 304 ).  
         [0059]     In the example of  FIG. 12 , the byte position to be accessed is calculated as shown below by using the average bit rate (2,666,666 bps) of the corresponding space, and also using the currently known nearest GOP time (10 seconds) and its byte position (7,500,100 bytes), if the calculated seek time is 20 seconds. 
 
7500100+(2666666*(20−10)/8) 
 
         [0060]     On the other hand, if the calculated seek time is 80 seconds, the byte position to be accessed is calculated as shown below by using the currently known nearest GOP time (100 seconds) and its byte position (37,500,100 bytes), 
 
37500100−(2666666*(100−80)/8) 
 
         [0061]     If any currently known GOP time and its byte position exist before or after or near the calculated time, the following point is further considered (S 303  and S 305 ). That is, in VBR, an image undergoing a scene change or containing much motion is encoded as high bit rate data, and an image with little motion is encoded as low bit rate data, as shown in  FIG. 3 .  
         [0062]     Accordingly, when the GOP byte position corresponding to the seek position, excluding those before and after a motion change point, is not registered in the management table, but the average bit rate of a microscopic GOP unit immediately before or after the change point is registered in the management table, the seek accuracy improves when the average bit rate of the GOP unit immediately before or after the change point is used, rather than when the average bit rate for searching is used.  
         [0063]     In this case, the GOP corresponding to the seek position is found by using the average bit rate immediately before or after the change point rather than using the average bit rate used in step  304 , and the management table  7  is updated accordingly. In the example of  FIG. 13 , using the average bit rate (2,666,666 bps) of the GOP unit immediately before the corresponding change point, the byte position to be accessed is calculated as shown below for the case where the calculated seek time is 11.5 seconds. 
 
7,833,432+(2666666*10/8) 
 
         [0064]     As the nearer average bit rate is more accurate than the overall average bit rate, an accurate random access point can be computed using the nearer average bit rate; this serves to reduce the amount of stored data searched, and special playback can be started quickly.  
         [0065]     Such a seek is effective for special playback that needs searching on a GOP-by-GOP basis, such as reverse playback (since MPEG can decode only in forward direction, one GOP is decoded starting from the point one GOP back and the pictures are presented in reverse order for display), fast playback (all the frames need not be decoded for fast forward but, for example, only I frames are decoded for each GOP and presented for display), and fast reverse playback (as in fast forward, only I frames are decoded for each GOP and presented for display). In this case, GOP-by-GOP time acquired at the time of playback start is used.  
         [0066]     Thereafter, the stored data is searched in the forward direction, starting from the accessed byte position (S 308  and  309 ). When the PTS (DTS) of a video packet is found, if the thus found PTS (DTS) is before and within a predetermined range relative to the PTS (DTS) to be sought, the stored data continues to be searched in the forward direction to search for a GOP (S 310  to  313 ). Otherwise, the byte position to be accessed is recalculated from the average bit rate and the time difference between the thus found PTS (DTS) and the PTS (DTS) to be sought (S 316 ).  
         [0067]     When a GOP is found, the bit rates before and after that are computed from the time of the GOP and the byte position of the stored data of the GOP, and the management table  7  is updated by the resulting information, after which the playback is started (S 313  to  315 ). In this way, the searching for the byte position corresponding to the seek, and the updating of the management table  7 , are performed successively.  
         [0068]     As is apparent from the above-described processes (1) to (3), in the present invention the average bit rate first obtained in the process (1) is successively updated in the processes (2) and (3). Accordingly, as the playback progresses, more accurate random access points can be computed and, at the same time, the amount of stored data searched can be reduced, thus making it possible to quickly start special playback of any arbitrary MPEG stored data.  
         [0069]     (4) Consolidation of Management Table  
         [0070]      FIG. 8  shows one example of the control flow for consolidating the management table  7 .  FIG. 14  shows one example of the consolidated management table  7 .  
         [0071]     When the data for each detected GOP is successively stored in the management table  7 , the table size will become enormous in the case of a large stored file. In view of this, in  FIG. 8 , if the bit rates of contiguous GOPs are the same, these GOPs are consolidated into a single GOP in order to reduce the size of the management table  7  (S 401  and  402 ). Here, even if the bit rates are not exactly the same, it is possible to consolidate the GOPs if their bit rates are close to each other.  
         [0072]     In the example of  FIG. 14 , the GOP time of 10 seconds and the GOP time of 10.5 seconds, both having the same average bit rate (2,666,666 bps), are consolidated by deleting the data for the GOP time of 10.5 seconds. The data for the GOP time of 10.5 seconds deleted here can be accurately computed using the previously given equation.  
         [0073]     (5) Searching for GOP Unit  
         [0074]      FIG. 9  shows one example of the control flow for converting the time specified by the seek instruction into time that matches the GOP unit.  
         [0075]     In  FIG. 9 , if the time specified by the seek instruction in the previously described process (3) does not match the GOP unit time, the GOP unit time closest to the specified time is obtained (S 501  and S 502 ). By searching for the byte position of the GOP unit in this way, the amount of stored data to be scanned from the byte position can be reduced.  
         [0076]     As described above, according to the present invention, for any arbitrary MPEG stored data, the GOP point used to perform special playback can be found quickly and accurately by eliminating the need for external information such as index information or an index file, while reducing the amount of search to be conducted through the stored data.  
         [0077]     More specifically, as the average bit rate of the data is calculated only from the MPEG stored data, and as only the starting and ending portions of the stored file are searched, the amount of search at the time of starting the playback can be reduced and the playback can be started more quickly than in a system that requires the creation of an index file.  
         [0078]     Furthermore, since the average bit rate obtained before starting the playback is successively updated during the playback process, a more accurate random access point can be computed as the playback progresses; this serves to reduce the amount of stored data searched, and special playback can be started quickly.  
         [0079]     Moreover, as the nearer average bit rate is more accurate than the overall average bit rate, an accurate random access point can be computed using the nearer average bit rate; this also serves to reduce the amount of stored data searched, and special playback can be started quickly.  
         [0080]     The present invention is applicable not only to the case of a VBR stored file but also to the case of a CBR stored file. In the case of CBR, operations to the management table become redundant as the average bit rate on the management table is the same for each GOP; otherwise, the invention can be applied without having to take note of the structure of the stored file, whether it be CBR or VBR.