# Patent

## Title
Information storage medium storing multi angle data, and recording method and reproducing apparatus thereof

## Abstract

A method of storing multi angle data. Data for a plurality of angles of a scene are stored in interleaved blocks. Sizes of the interleaved blocks are integral multiples of sizes of integral numbered aligned units that include packets. Angle change points are included in each of the interleaved blocks, allowing a reproducing apparatus to seamlessly jump from one angle to another angle during reproduction of the multi angle data. A number of the angle points recorded on the information storage medium is computed so that a jumping distance required by the data during reproduction does not exceed a maximum jumping distance of a reproducing apparatus.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of application Ser. No. 10/885,130 filed on Jul. 7, 2004, now U.S. Pat. No. 7,493,019, and claims the benefit of Korean Patent Application Nos. 2003-75825 filed on Oct. 29, 2003, and 2004-22878 filed on Apr. 2, 2004, in the Korean Intellectual Property Office, and U.S. Provisional Application No. 60/484,672 filed on Jul. 7, 2003, in the United States Patent and Trademark Office, the disclosures of which are incorporated herein by reference.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to multi angle data used when encoding and/or decoding video object data, and more particularly, to an information storage medium which stores the multi angle data, a method of recording and/or reproducing the multi angle data, and an apparatus for recording and/or reproducing the multi angle data.
2. Description of the Related Art
Multi angle data is obtained by photographing a scene with several cameras at different angles and encoding a result of the photographing. When a change of viewing angle of the photographed scene is desired during reproduction of contents including the multi angle data, a change of angle command is sent to a reproducing apparatus, and the reproducing apparatus reproduces data of the scene photographed at the desired angle in response to the command. For angle change, the multi angle data are divided into predetermined units and the units are alternately recorded using interleaving.
Accordingly, a pickup of the reproducing apparatus must jump to other positions so as to detect and reproduce interleaved blocks at an angle or accomplish angle change while reading the multi angle data recorded using interleaving. However, an increase in sizes of the interleaved blocks results in an increase in the distance between a current position and a position to which a pickup of the reproducing apparatus must jump for angle change. In this case, seamless reproduction is not guaranteed. On the contrary, if a size of an interleaved block is small, jumping of the pickup of the reproducing apparatus is frequently required during data reproduction that does not require angle change. Accordingly, it is important to adjust a size of an interleaved block appropriately.
Further, a jumping point allowing the reproducing apparatus to jump to other interleaved blocks at a different angle may be set within one interleaved block. In this case, a total number of jumping points must be appropriately determined so that the multi angle data is effectively reproducible.
SUMMARY OF THE INVENTION
The present invention provides an information storage medium on which multi angle data is recorded to enable seamless reproduction, and a method of recording and/or reproducing the multi-angle data and an apparatus for recording and/or reproducing the multi angle data.
The present invention also provides a method of determining a total number of angle points that allow a reproducing apparatus to jump to change reproduction positions within an interleaved block.
According to an aspect of the present invention, there is provided an information storage medium on which multi angle data comprising at least one unit of angle data is recorded, wherein the multi angle data comprises interleaved blocks, each of which includes at least one predetermined sized packet, and the data of one angle are interleaved with the data of at least one other angle in units of the interleaved blocks, sizes of the interleaved blocks being integral multiples of sizes of integral numbered aligned units that include packets.
Each of the interleaved blocks may include at least one angle point that allows a reproducing apparatus to continue data reproduction while jumping to other reproduction positions during reproduction of the angle data, a number of angle points includible in each of the interleaved blocks being integral multiples of a number of the aligned units.
According to another aspect of the present invention, there is provided a method of recording multi angle data that includes interleaved blocks, each of which includes at least one angle point that allows a reproducing apparatus to jump to other reproduction positions during data reproduction, using interleaving, the method comprising computing a distance between angle points; compensating for an offset between the computed distance and a reproduction length of a packet comprising each of the interleaved blocks; computing a maximum number of angle points in one interleaved unit that is obtained when a possible longest jumping distance to which the reproducing apparatus can jump during data reproduction is smaller than or equal to a maximum jumping distance given by the reproducing apparatus; and making interleaved blocks based on the distance between angle points and a number of angle points, and recording the multi angle data on the interleaved blocks.
According to yet another aspect of the present invention, there is provided an apparatus for reproducing multi angle data stored in interleaved blocks, each of which includes at least one angle point allowing the apparatus to jump to other reproduction positions during data reproduction, the apparatus comprising a reading unit which reads the multi angle data; and a buffer which stores the read multi angle data, wherein the multi angle data comprises interleaved blocks, each of which includes at least one predetermined sized packet, and the angle data of one angle are interleaved with angle data of at least one other angle in units of interleaved blocks, sizes of the interleaved blocks being integral multiples of sizes of integral numbered aligned units that include packets.
Additional aspects and/or advantages of the invention will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the invention.



BRIEF DESCRIPTION OF THE DRAWINGS
The above and/or other aspects and advantages of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:
FIG. 1A illustrates a first angle data file;
FIG. 1B illustrates a second angle data file;
FIG. 1C illustrates recording of the first and second angle data files using interleaving;
FIG. 2 illustrates the multi angle data of FIG. 1 recorded on an information storage medium;
FIG. 3 is a block diagram of a reproducing apparatus for seamlessly reproducing data, according to an embodiment of the present invention;
FIG. 4 is a graph illustrating an amount of data stored in a read buffer during jumping of a pickup;
FIG. 5 illustrates a structure of a clip file recorded using interleaving to realize multi angle data, according to an embodiment of the present invention; and
FIG. 6 is a flowchart illustrating a method of calculating the distance SANGLE—POINTS between two angle points and a length SEXTENT of an extent, according to an embodiment of the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Reference will now be made in detail to the embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments are described below to explain the present invention by referring to the figures.
FIGS. 1A-1C illustrate multi angle data recorded using interleaving. The multi angle data comprises a first angle data file 110 as shown in FIG. 1A and a second angle data file 120 as shown in FIG. 1B that contain audio/video (AV) data for respective angles. The first and second angle data files 110 and 120 are alternately and continuously recorded in an area 130 of an information storage medium as shown in FIG. 1C for fast change of angle views. In other words, the first and second angle data files 110 and 120 are divided into predetermined units and the predetermined units are recorded using interleaving. Accordingly, a pickup of a reproducing apparatus is not required to move a large distance to read data at a changed angle when angle views are changed, thereby guaranteeing seamless reproduction.
Each predetermined unit of angle data included in data recorded on the information storage medium using interleaving is referred to as an extent. In the case of a digital versatile disc-video (DVD-Video), an extent is equivalent to an interleaved unit. That is, the extent indicates data recorded in a file system without a pause. Accordingly, jumping of a pickup of the reproducing apparatus to other extents is required to exactly read data for data reproduction.
FIG. 2 illustrates the interleaved data of FIGS. 1A-1C recorded on an information storage medium. An AV stream indicates a bit stream comprising a plurality of source packets. A source packet is a 192-byte packet that includes a 188 byte MPEG-2 transport stream (TS) packet and a 4-byte header. In general, data is stored in sector units in an information storage medium. A sector is a basic unit of recording a file. In general, a sector stored in a DVD is 2048 bytes long. Thus, a sector is comprised of several source packets.
FIG. 3 is a simplified block diagram of a reproducing apparatus for seamlessly reproducing data. Referring to FIG. 3, data stored in an information storage medium is read by a reading unit 310 and the read data is transmitted to a read buffer 330 via a demodulation unit 320. The read buffer 330 is used to buffer a bit stream that is to be transmitted to a decoder, and thus, use of the buffer guarantees seamless reproduction even during jumping of a pickup 305 in the reading unit 310. A source depacketizer 340 converts the bit stream that includes a plurality of source packets into an MPEG-2 TS packet and outputs the MPEG-2 TS packet.
Parameters related to buffering are as follows:
(a) RUD: A data rate of data transmitted from the reading unit 310 to the read buffer 330 via the demodulation unit 320;
(b) RTS: A maximum value of an encoding rate TS_recording_rate of an MPEG-2 TS, i.e., a speed of outputting data to the decoder; and
(c) RMAX: A maximum bit rate of a source packet stream. An MPEG-2 TS packet is 188 bytes long and inclusion of a 4-byte header into the MPEG-2 TS packet forms a source packet stream. Therefore, a maximum bit rate RMAX equals (192/188)×RTS.
Assuming that data BOCCUPIED output from the read buffer 330 to the decoder at a speed TS_recording_rate satisfies Equation (1), underflow of the read buffer 330 is not caused even if data cannot further be stored in the read buffer 330 for a time TJUMP.




  
    
      
        
          B
          OCCUPIED
        
        ≥
        
          
            
              
                T
                JUMP
              
              ⁡
              
                (
                ms
                )
              
            
            1000
          
          ×
          
            192
            188
          
          ×
          TS_recording
          ⁢
          _rate
        
      
    
    
      
        (
        1
        )
      
    
  




FIG. 4 is a graph illustrating an amount of data stored in the read buffer 300 during jumping of the pickup 305. In FIG. 4, TJUMP denotes a sum of a jumping time, i.e., an access time TACCESS, and a time TOVERHEAD required to read two error correcting codes (ECCs). That is, TJUMP=TACCESS+TOVERHEAD, and TOVERHEAD (ms)≦{2×ECC (bytes)}/RUD (bps).
When reading data stored in an information storage medium, the read buffer 330 is filled with the read data. Before the pickup jumps to a new position, the read buffer 330 must be filled with data as specified in Equation (1) so as to prevent underflow of the read buffer 330. That is, in order to prevent underflow of the read buffer 330, a length SREAD of data that must be read to the read buffer 330 before jumping of the pickup must satisfy Equation (2).




  
    
      
        
          
            S
            READ
          
          ⁡
          
            (
            bit
            )
          
        
        ≥
        
          
            
              
                
                  T
                  JUMP
                
                ⁡
                
                  (
                  ms
                  )
                
              
              ×
              
                R
                UD
              
            
            1000
          
          ×
          
            
              TS_recording
              ⁢
              _rate
              ⁢
              
                (
                bps
                )
              
              ×
              192
            
            
              
                
                  
                    R
                    UD
                  
                  ⁡
                  
                    (
                    bps
                    )
                  
                
                ×
                188
              
              -
              
                TS_recording
                ⁢
                _rate
                ⁢
                
                  (
                  bps
                  )
                
                ×
                192
              
            
          
        
      
    
    
      
        (
        2
        )
      
    
  




FIG. 5 illustrates a structure of a clip file recorded using interleaving to realize multi angle data.
As described above, respective angle data of one angle are interleaved among angle data of at least one other angle to reduce jumping time and response time for angle change, thereby seamlessly changing angles. As a result, jumping is required not only for angle change but also for normal playback at a same angle, in order to detect and reproduce desired angle data. An interleaved block is considered an extent of a clip file. An extent may include a plurality of angle points allowing a pickup to jump to other angle data. Accordingly, a length SEXTENT of the extent in sectors and a distance SANGLE—POINTS between two angle points must satisfy Equation (3).




  
    
      
        
          
            S
            EXTENT
          
          ⁡
          
            (
            sectors
            )
          
        
        =
        
          INT
          ⁢
          
            {
            
              
                (
                
                  
                    
                      ∑
                      
                        in_one
                        ⁢
                        _extent
                      
                    
                    ⁢
                    
                      S
                      ANGLE_POINTS
                    
                  
                  +
                  6144
                  -
                  192
                
                )
              
              /
              6144
            
            }
          
          ×
          3
        
      
    
    
      
        (
        3
        )
      
    
  




The clip file of multi angle data, shown in FIG. 5, has the following restrictions:
(i) the clip file must be located on a layer;
(ii) extents of multi angle streams must start with an angle point and be aligned with aligned units. If a last aligned unit of an extent is not completely filled with input transport streams, an unoccupied space of the last aligned unit is filled with null packets;
(iii) each distance SANGLE—POINTS is an integral multiple of a length of a source packet, e.g., an integral multiple of 192 bytes; and
(iv) the length SEXTENT of the extent, a total number of angle points in the extent, and an angle change time must meet the buffer occupancy rules defined in Equations (1) and (2). Examples of buffer parameters are shown in Tables 1 and 2 that appear below.
The distance SANGLE—POINTS between two angle points is shorter than the length SEXTENT of the extent, and a maximum value of the access time TACCESS for angle change is obtained when jumping to a farthest angle point in a next unit of angle data from a current angle point in a current unit of angle data. A unit of angle data may be referred to as a plurality of blocks of data corresponding to a same time, wherein each block corresponds to data at a respective angle. Referring to FIG. 5, the data Angle 1-1, Angle 2-1 and Angle 3-1 may be considered to be the current unit of angle data, and the data Angle 1-2, Angle 2-2 and Angle 3-2 may be considered to be a next unit of angle data. If an angle change command is received before arriving at the angle point 520 after the angle point 510, the maximum value of the access time TACCESS is obtained when jumping to a first angle point 530 of Angle 3-2 from a last angle point 520 of Angle 1-1 after reproducing remaining data of Angle 1-1.
If several angle points are set within an extent, the length SREAD of FIG. 4 is equal to the distance SANGLE—POINTS. In this case, Equation (2) may be rewritten as follows:




  
    
  
  ⁢
  
    
      
        S
        ANGLE_POINTS
      
      ⁡
      
        (
        bit
        )
      
    
    ≥
    
      
        
          
            
              T
              JUMP
            
            ⁡
            
              (
              ms
              )
            
          
          ×
          
            
              R
              UD
            
            ⁡
            
              (
              bps
              )
            
          
        
        1000
      
      ×
      
        
          TS_recording
          ⁢
          _rate
          ⁢
          
            (
            bps
            )
          
          ×
          192
        
        
          
            
              
                R
                UD
              
              ⁡
              
                (
                bps
                )
              
            
            ×
            188
          
          -
          
            TS_recording
            ⁢
            _rate
            ⁢
            
              (
              bps
              )
            
            ×
            192
          
        
      
    
  




FIG. 6 is a flowchart illustrating a method of calculating the distance SANGLE—POINTS between two angle points and a length SEXTENT of an extent, according to an embodiment of the present invention. Referring to FIG. 6, the distance SANGLE—POINTS is calculated with given access time TACCESS and data output speed TS_recording_rate, using Equation (3) (S610). Next, lengths A and B of data that are reproduced at the data output speed TS_recording_rate for 500 ms and 1000 ms, respectively, are calculated (S620). Since a distance between group-of-pictures (GOPs) is between 500 ms and 1000 ms according to the MPEG-2 standards, a distance between angle points is preferably set between 500 ms and 1000 ms. Then, the distance SANGLE—POINTS is compared with the lengths A and B (S630). If the distance SANGLE—POINTS≦the length A, the distance SANGLE—POINTS is determined to be equal to the length A, and if the length A<the distance SANGLE—POINTS the length B, the distance SANGLE—POINTS is determined to be equal to the length B (S630).
Next, a maximum number M of angle points in an interleaved unit that satisfies that a longest jumping distance less than (<) a maximum jumping distance for the given access time TACCESS, is calculated (S640). Since the available maximum jumping distance of a reproducing apparatus is set by the reproducing apparatus, the longest jumping distance is calculated by 2×(angle number−1)×M×SANGLE—POINTS. Thus, the maximum number M can be computed using the computed longest jumping distance. Then, the length SEXTENT of the extent equals INT[(M×SANGLE—POINTS+6144−192)/6144]×3 as set forth in Equation (3) above and has M angle points.
Considering that jumping is made between two angle points, angle units, each of which corresponds to data between two angle points in an angle data unit, are preferably aligned with sectors.
Tables 1 and 2 show example values of the length SEXTENT of an extent and the distance SANGLE—POINTS between two angle points computed using the above method. In detail, Table 1 shows example values of the length SEXTENT and the distance SANGLE—POINTS when a scene is photographed at three angles. Table 2 shows example values of the length SEXTENT and the distance SANGLE—POINTS when the scene is photographed at nine angles.










TABLE 1









Maximum Jump Distance












10000
20000
40000



sectors
sectors
sectors



(TACCESS:
(TACCESS:
(TACCESS:



210 ms)
270 ms)
330 ms)










SEXTENT, and Angle Point Number



TS_recording_rate
and Length in SEXTENT













20 Mbps
2496, 4,
4989, 8,
9975, 8,



500 ms
500 ms
1 sec


24 Mbps
2247, 3,
4491, 3,
8979, 6,



500 ms
1 sec
1 sec


30 Mbps
1872, 1,
3741, 2,
9351, 5,



1 sec
1 sec
1 sec



















TABLE 2









Maximum Jump Distance












10000
20000
40000



sectors
sectors
sectors



(TACCESS:
(TACCESS:
(TACCESS:



210 ms)
270 ms)
330 ms)










SEXTENT, and Angle Point Number



TS_recording_rate
and Length in SEXTENT













20 Mbps
624, 1,
1248, 2,
2496, 2,



500 ms
500 ms
1 sec


24 Mbps
N.A.
N.A.
1497, 1,





1 sec


30 Mbps
N.A.
N.A.
1872, 1,





1 sec









In general, extents of a file are aligned with sectors. According to the present invention, a source packet is 192 bytes long and thus cannot be aligned with a sector of 2048 bytes. Therefore, three continuous sectors are grouped into an access unit. An access unit of three sectors is a minimum unit where an integral multiple of a length of a source packet is equal to a length of the access unit. In other words, where a sector has a length of 2048 bytes, a length of 32 source packets equals a length of three sectors, i.e., one access unit.
The present invention may be realized as a computer program. In this case, codes and code segments that are the members of the present invention can be easily inferred by computer programmers in the art to which the present invention belongs. Also, the computer program may be stored in a computer readable medium. When the computer program is read and executed by a computer, a method of recording a multi angle data is accomplished. The computer readable medium may be any medium, such as a magnetic recording medium, an optical recording medium, and a carrier wave medium.
As described above, according to the present invention, multi angle data is effectively recordable so that the multi angle data is seamlessly without excessive jumping of a pickup for data reproduction.
Although a few embodiments of the present invention have been shown and described, it would be appreciated by those skilled in the art that changes may be made in this embodiment without departing from the principles and spirit of the invention, the scope of which is defined in the claims and their equivalents.

## Claims

1. A method of recording multi angle data comprising interleaved blocks, each of which includes at least one angle point that allows a reproducing apparatus to jump to other reproduction positions during data reproduction, the method comprising:
computing a distance between angle points;
compensating for an offset between the computed distance and a reproduction length of a packet of the interleaved blocks;
computing a maximum number of angle points in one interleaved block which limits a longest jumping distance which the multi angle data may require during data reproduction to be smaller than or equal to a maximum jumping distance of the reproducing apparatus; and
making interleaved blocks based on the distance between angle points and a number of angle points, and recording the multi angle data on the interleaved blocks.

2. The method of recording multi-angle data of claim 1, wherein the computing of the distance between the angle points further comprises computing the distance between angle points using an access time of the reproducing apparatus and a recording bit rate of a data stream.

3. The method of recording multi-angle data of claim 2, wherein the compensating for the offset between the computed distance and the reproduction length of the packet comprises:
computing a length of the data stream reproduced for a first predetermined time and a length of the data stream reproduced for a second predetermined time longer than the first predetermined time;
if the distance between angle points is smaller than the length of the data stream reproduced for the first predetermined time, replacing the distance between angle points with the length of the data stream reproduced for the first predetermined time; and
if the distance between angle points is greater than the length of the data stream reproduced for the first predetermined time and smaller than the length of the data stream reproduced for the second predetermined time, replacing the distance between angle points with the length of the data stream reproduced for the second predetermined time.

4. The method of recording multi-angle data of claim 1, wherein the computing of the maximum number of the angle points in the one interleaved unit comprises:
computing the longest jumping distance as 2×(angle number−1)×M×SANGLE_POINTS, and
computing a maximum number of angle points M using the longest jumping distance.

5. The method of recording multi-angle data of claim 3, wherein the making of the interleaved blocks based on the distance between angle points and the number of angle points, and the recording the multi angle data on the interleaved blocks further comprise:
calculating a size of each of the interleaved blocks using the distance between angle points and the number of angle points,
adjusting the size of the interleaved blocks to integral multiples of integral numbered aligned units that include predetermined sized packets, and
recording the multi angle data on the interleaved blocks.

6. The method of recording multi-angle data of claim 5, wherein the at least one predetermined sized packet is 192 bytes long and comprises a header and an MPEG-2 transport stream.

7. The method of recording multi-angle data of claim 1, wherein the computing of a distance, the compensating for an offset, the computing of a maximum number of angle points, the making of interleaved blocks, and the recording of the multi angle data are performed by an apparatus that records the multi angle data on the interleaved blocks on an information storage medium.