Abstract:
A motion vector and macroblock type determining method is provided. The method comprises receiving a high frame-rate video stream having N frames; skipping a frame N−1; allocating a motion vector to a macroblock of frame N according to a macroblock type of the skipped frame N−1; allocating a macroblock type to a macroblock type of frame N according to a macroblock type of the skipped frame N−1; and outputting a low frame-rate video stream.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
         [0001]    Pursuant to 35 U.S.C. § 119(a), this application claims the benefit of earlier filing date and right of priority to the Korean Application No. 2002-63207, filed on Oct. 16, 2002, the content of which is hereby incorporated by reference herein in its entirety.  
         BACKGROUND OF THE INVENTION  
         [0002]    1. Field of the Invention  
           [0003]    The present invention relates to a method for determining a motion vector and a macroblock type, and in particular to a method for determining a motion vector and a macroblock type of a frame transmitted without being skipped in a frame-rate conversion transcoder.  
           [0004]    2. Description of the Prior Art  
           [0005]    Video on Demand (VOD) or video streaming service is for transmitting requested video contents selectively by storing video contents as compressed file formats in a transmission server. Servicing video contents in a mobile communication network with low channel bandwidth or the Internet having variable channel bandwidth is challenging because channel bandwidth can be sharply reduced or congestion can occur.  
           [0006]    To resolve these problems the transmission server has to reduce the video transmission frame-rate. A frame-rate conversion transcoder is utilized for adjusting a video transmission frame-rate. FIG. 1 is a block diagram illustrating operation of a general frame-rate conversion video transcoder.  
           [0007]    In general, a moving picture such as a moving picture experts group (MPEG) is compressed through predictive encoding. In the predictive encoding, a signal value of a certain pixel is obtained by using difference between image signal values in different times. Each frame of moving picture has temporal correlation with each other. The frame is constructed with plural macroblocks. The macroblocks can be divided into inter type or intra type macroblocks.  
           [0008]    Referring to FIG. 1, the frame-rate conversion video transcoder  10  includes a frame skipper  11  for skipping a frame in order to convert high frame-rate bit sequences into low frame-rate bit sequences; and an estimator  12  for allocating a new motion vector and a macroblock type of a following frame by using the frame skipped in the frame skipper  11  as a prediction reference.  
           [0009]    When a certain frame is skipped in order to reduce the video transmission frame-rate, the following frame uses the skipped frame as a reference for prediction. Thus, a new motion vector and a new macroblock type have to be determined.  
           [0010]    In order to determine a new motion vector, a FDVS (forward dominant vector selection) method has been presented by J. Youn and M. Sun (“Motion vector refinement for high-performance transcoding” IEEE Trans. on Multimedia, vol. no.1. pp30-40, March 1999). In an encoder, computational complexity required for estimating a motion vector is as great as 70% of a total computational complexity. Accordingly, the method for determining a new motion vector by using the previously obtained motion vector without performing motion vector estimation again has been presented by Youn and Sun.  
           [0011]    [0011]FIG. 2 shows a current FDVS method. The FDVS method will be described with reference to an example skipping a frame N−1 in transmission. In the current FDVS method, among four macroblocks of the skipped frame, a motion vector of the macroblock having the greatest overlapped portion with a macroblock to be predicted is defined as a dominant motion vector. The dominant motion vector is defined as a motion vector of the macroblock of the skipped frame.  
           [0012]    As depicted in FIG. 2, a macroblock having the greatest overlapped portion with a macroblock predicted by a motion vector MV N  allocated to a macroblock MB N  of a frame N is called MB N−1 , and a motion vector allocated to the macroblock MB N−1  is called MV N−1 .  
           [0013]    Accordingly, a new motion vector MV′ N  of the macroblock MB N  of a frame N following after a skipped frame N−1 can be calculated by adding the motion vector MV N  allocated to the macroblock MB N  to the motion vector MB N−1  allocated to the macroblock MV N−1 . Equation 1, below, shows calculating the new motion vector MV′ N  of the macroblock MB N  of the frame N. 
             MV′   N   =MV   N   +MV   N−1   (Equation 1) 
           [0014]    As depicted in Equation 1, in the current FDVS, the previously obtained motion vector is utilized to determine a new motion vector about a frame to be transmitted after the skipped frame. However, by applying Equation 1 without considering a macroblock type of the macroblock MB N  of the frame N, the following problems may occur.  
           [0015]    First, when the macroblock MB N−1  of the frame N−1 is an ‘intra type’, a newly allocated motion vector MV′ N  is defined by Equation 2, provided below. Herein, a macroblock of the ‘intra type’ does not have a motion vector, a motion vector MV N−1  to be allocated to the macroblock MB N−1  is (0,0). 
             MV′   N   =MV   N +(0,0)= MV   n   (Equation 2) 
           [0016]    In Equation 2, the macroblock predicted by the motion vector MV N  in the frame N−2 is matched so as to be the most similar to the macroblock predicted by the motion vector MV N  in the frame N−1. However, since the frame N−1 and the frame N−2 have different characteristics, an optimum matching is not achieved.  
           [0017]    Second, when the macroblock MB N  of the frame N is a ‘skipped type’, in the FDVS method, regardless of a macroblock type of the skipped frame N−1, the macroblock MB N  is determined as the ‘skipped type’. However, when a macroblock of the frame N−1 located at the same position with the macroblock MB N  of the frame N is an ‘intra type’ or an ‘inter type’, the macroblock MB N  is not coincided with a macroblock type of the frame N−1. In more detail, a reproduced image of the macroblock MB N  decoded by using the frame N−2 as a reference image is different from actual image data of the macroblock MB N .  
           [0018]    As described above, by estimating a new motion vector without considering a macroblock type of a frame skipped in transmission and a macroblock type of a frame predicted on the basis of the skipped frame, an image is reproduced through a decoder of a reception block that may be different from an actual image. As a result error may be accumulated in following images, and accordingly picture quality may be deteriorated. Methods and systems are needed that can overcome the above shortcomings associated with the current FDVS method.  
         SUMMARY OF THE INVENTION  
         [0019]    In order to solve the above-mentioned problem, it is an object of the present invention to provide a method for determining a motion vector and a macroblock type capable of accurately determining a motion vector and a macroblock type of a frame transmitted without being skipped in a video transcoder.  
           [0020]    A motion vector and macroblock type determining method is provided. The method comprises receiving a high frame-rate video stream having N frames; skipping a frame N−1; allocating a motion vector to a macroblock of frame N according to a macroblock type of the skipped frame N−1; allocating a macroblock type to a macroblock type of frame N according to a macroblock type of the skipped frame N−1; and outputting a low frame-rate video stream.  
           [0021]    The macroblock type of the frame N is divided into an inter type and a skipped type. The motion vector of the macroblock of the frame N is determined according to a macroblock type of the skipped frame N−1 when the macroblock of the frame N is an inter type. The macroblock type of the frame N is determined according to a macroblock type of the frame N−1 located at approximately similar position with the macroblock of the frame N when the macroblock of the frame N is a skipped type.  
           [0022]    In some embodiments, the method further comprises determining a new motion vector of the macroblock of the frame N when the new macroblock is an inter type. The new motion vector of the macroblock of the frame N is determined so as to be same with a motion vector of the macroblock of the frame N−1 located at approximately a similar position with the macroblock of the frame N.  
           [0023]    In accordance with one embodiment, a motion vector and macroblock type determining method comprises determining whether a macroblock of a frame N transmitted after a skipped frame N−1 is an inter type or a skipped type; allocating a new motion vector for the frame N according to a macroblock type of the skipped frame N−1 when a macroblock of the frame N is an intra type; and determining a new macroblock type for the frame N according to a macroblock type of the frame N−1 located at approximately a similar position with the macroblock of the frame N when the macroblock of the frame N is a skipped type.  
           [0024]    In certain embodiments, it is determined if a macroblock type of the skipped frame N−1 when the macroblock of the frame N is an intra type; such that an infinite motion vector to the macroblock of the frame N when the macroblock of the skipped frame N−1 is an intra type is allocated; the same motion vector of the macroblock of the frame N when the macroblock of the skipped frame N−1 is a skipped type is allocated; and sum total of a motion vector allocated to macroblock of the frame N and a motion vector allocated to macroblock of the frame N−1 as a new motion vector of the macroblock of the frame N is allocated, when the macroblock of the skipped frame N−1 is an inter type.  
           [0025]    In one embodiment, the method further comprises determining a macroblock type for the frame N−1 located at approximately a similar position with the macroblock of the frame N when the macroblock of the frame N is a skipped type; determining the macroblock of the frame N as an intra type when the macroblock of the frame N−1 is an intra type; determining the macroblock of the frame N as a skipped type when the macroblock of the frame N−1 is a skipped type; and determining the macroblock of the frame N as an inter type when the macroblock of the frame N−1 is an inter type.  
           [0026]    A motion vector is allocated about the macroblock of the frame N when the macroblock of the frame N is an inter type. The motion vector is allocated so as to be similar to the motion vector of the macroblock of the frame N−1 located at approximately a same position with the macroblock of the frame N.  
           [0027]    In accordance with yet another embodiment, a motion vector and macroblock type determining method are provided. The method comprises examining a macroblock of a frame N transmitted after a skipped frame N−1 is an inter type; determining a macroblock type of a frame N−1; and allocating a new motion vector for a macroblock of the frame N, according to the macroblock type of the frame N−1. The macroblock type of the frame N−1 is divided into an intra type, a skipped type and an inter type.  
           [0028]    In some embodiments, the new motion vector is determined based on an equation MV′ N =MV N +MV N−1 , wherein MV′ N  is a motion vector allocated to a macroblock of the frame N, MV N  is a motion vector of a macroblock of the frame N, and MV N−1  is a motion vector of a macroblock of the frame N−1. MV N−1  has an approximately infinite value when the macroblock of the frame N−1 is an intra type. MV N−1  has an approximately 0 value when the macroblock of the frame N−1 is a skipped type.  
           [0029]    The new motion vector allocating step comprises allocating an infinite motion vector to a macroblock of the frame N when the macroblock of the skipped frame N−1 is an intra type; allocating a motion vector of the macroblock of the frame N when the macroblock of the skipped frame N−1 is a skipped type; and allocating approximately sum of a motion vector allocated to the macroblock of the frame N and a motion vector allocated to the macroblock of the frame N−1 as a new motion vector for the macroblock of the frame N when the macroblock of the skipped frame N−1 is an inter type.  
           [0030]    In accordance with yet another embodiment, a motion vector and macroblock type determining method is provided. The method comprises examining a macroblock of a frame N transmitted after a skipped frame N−1; examining a macroblock type of a frame N−1 located at approximately a similar position with the macroblock of the frame N; and determining if the macroblock type of the frame N is same as the macroblock type of the frame N−1. The macroblock of the frame N is determined as an intra type, when the macroblock of the frame N−1 is an intra type.  
           [0031]    The macroblock of the frame N is determined as a skipped type, when the macroblock of the frame N−1 is a skipped type. The macroblock of the frame N is determined as an inter type, when the macroblock of the frame N−1 is an inter type; and a new motion vector of the macroblock of the frame N is allocated. In one embodiment, a motion vector of the macroblock of the frame N−1 located at approximately same position with the macroblock of the frame N is allocated as a new motion vector of the macroblock of the frame N.  
           [0032]    These and other embodiments of the present invention will also become readily apparent to those skilled in the art from the following detailed description of the embodiments having reference to the attached figures, the invention not being limited to any particular embodiments disclosed.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0033]    The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description serve to explain the principles of the invention.  
         [0034]    [0034]FIG. 1 is a block diagram illustrating operation of a general frame-rate conversion video transcoder;  
         [0035]    [0035] 
         [0036]    [0036]FIG. 2 illustrates an example of a related art FDVS method;  
         [0037]    [0037] 
         [0038]    [0038]FIG. 3 illustrates an exemplary method, in form of a machine-readable code, for newly allocating a type of a macroblock MB N , in accordance with one embodiment of the invention;  
         [0039]    [0039]FIG. 4 is a flow chart illustrating a method for determining a motion vector and a macroblock type in accordance with one embodiment of the present invention; and  
         [0040]    [0040]FIGS. 5A and 5B illustrate exemplary graphs for comparing performance of an FDVS method, in accordance with the related art, with that of an improved FDVS method in accordance with one embodiment of the present invention. 
     
    
       [0041]    Features, elements, and aspects of the invention that are referenced by the same numerals in different figures represent the same, equivalent, or similar features, elements, or aspects in accordance with one or more embodiments of the system.  
       DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0042]    Hereinafter, a preferred embodiment of a method for determining a motion vector and a macroblock type in accordance with the present invention will be described with reference to accompanying drawings. The method for determining a motion vector and a macroblock type in accordance with the present invention can solve the problems associated with the current FDVS method.  
         [0043]    In accordance with one or more embodiments of the invention, when the frame N−1 skipped in transmission includes an intra type macroblock, a new motion vector is defined by Equation 3, below: 
           MV′   N   =MV   N +(∞,∞)=(∞,∞)  (Equation 3) 
         [0044]    For example, a motion vector (0, 0) is allocated to the intra type macroblock. In one embodiment of the invention, an infinite motion vector is allocated to the macroblock MB N  of the frame N and the macroblock MB N  is determined as the intra type.  
         [0045]    When the macroblock MB N  of the frame N transmitted after the skipped frame N−1 is a skipped type, newly allocated macroblock type and motion vector are determined. In some embodiments, regardless of a macroblock type of the skipped frame N−1, a macroblock of the frame N is determined as a skipped type. In certain embodiments of the invention, however, according to a macroblock type of the frame N−1 located at the same position with the macroblock MB N , a macroblock type and a motion vector of the macroblock MB N  are determined.  
         [0046]    In more detail, when a macroblock type of the frame N−1 located at the same position with the macroblock MB N  is an intra type, a newly allocated macroblock MB N  is an intra type. When a macroblock type of the frame N−1 is an inter type, a newly allocated macroblock MB N  is an inter type. When a macroblock type of the frame N−1 is a skipped type, a newly allocated macroblock MB N  is a skipped type.  
         [0047]    Referring to FIG. 3, a process for newly allocating a type of a macroblock MB N  is provided, when the macroblock MB N  of the frame N is a skipped type. Accordingly, MB_type_MB N  is a type of the macroblock MB N , and MB_type_skipped_frame is a type of a macroblock located at the same position with the macroblock MB N  in the frame N−1.  
         [0048]    Referring to FIG. 4, a method for determining a motion vector and a macroblock type in accordance with one embodiment of the present invention is provided. When frame N−1 is skipped in the video stream inputted to the frame-rate conversion video transcoder (step S 11 ), a motion vector and a macroblock type of the frame N as the reference frame for predicting the frame N−1 are reallocated.  
         [0049]    It is judged whether the macroblock MB N  of the frame N is an inter type or a skipped type (step S 12 ). When the macroblock MB N  is an inter type, a motion vector reallocating process is performed. When the macroblock MB N  is a skipped type, a process for allocating a pertinent macroblock type and a motion vector is performed. When the macroblock MB N  is an intra type, it is considered that the operation has no correlation with a previous frame (i.e., when a scene conversion is performed). Accordingly there is no need to perform the motion vector reallocating process.  
         [0050]    In certain embodiments, the motion vector and macroblock type determining process of the macroblock MB N  will be described with two cases (e.g., whether the macroblock MB N  is an inter type or a skipped type). First, if the macroblock MB N  is an inter type, it is determined whether a type of a macroblock MB N−1  of the skipped frame N−1 is an intra type (step S 13 ). If the macroblock MB N−1  is an intra type, by applying Equation 3, a new motion vector about the macroblock MB N  is determined (step S 14 ). A newly allocated motion vector is an infinite motion vector, in accordance with one or more embodiments.  
         [0051]    When the macroblock MB N−1  of the skipped frame N−1 is not an intra type, it is judged whether the macroblock MB N−1  is a skipped type (step S 15 ). When the macroblock MB N−1  is the skipped type, by applying Equation 2, a new motion vector about the macroblock MB N−1  is determined (step S 16 ). In more detail, when the macroblock MB N−1  is the skipped type, because the macroblock does not have a motion vector, a motion vector MV N  allocated to the macroblock MB N  and the newly allocated motion vector are the same.  
         [0052]    When the macroblock MB N−1  of the skipped frame N−1 is an inter type, by applying Equation 1 alike the conventional FDVS, a new motion vector about the macroblock MB N  is determined (step S 17 ). If the macroblock MB N  of the frame N is an inter type, in consideration of the macroblock type of the macroblock MB N−1  of the skipped frame N−1, a type of the macroblock MB N  is allocated.  
         [0053]    In some embodiments, is judged whether a macroblock located at the same position with the macroblock MB N  in the skipped frame N−1 is an intra type (step S 18 ). When the macroblock of the frame N−1 is an intra type, the macroblock MB N  is determined as an intra type (step S 19 ). When the macroblock of the frame N−1 is a skipped type (step S 20 ), the macroblock MB N  is determined as a skipped type (step S 21 ). When the macroblock of the frame N−1 is an inter type, the macroblock MB N  is determined as an inter type (step S 22 ).  
         [0054]    In one embodiment, after the macroblock MB N  is determined as the inter type, a motion vector corresponded to the macroblock of the frame N−1 is allocated as a motion vector of the macroblock MB N  (step S 23 ). That is, when the macroblock MB N  is the intra type or the skipped type, there is no need to allocate a new motion vector. However, when the macroblock MB N  is an inter type, a motion vector allocated to the macroblock of the frame N−1 is allocated as a new motion vector.  
         [0055]    When the macroblock MB N  is the skipped type, according to a macroblock type of the frame N−1 located at the same position with the macroblock MB N , a type of the new macroblock MB N  is determined. Although a macroblock of a frame transmitted without being skipped through the frame-rate conversion video transcoder is an intra type or a skipped type, the motion vector and macroblock type determining method in accordance with the present invention can be applied.  
         [0056]    The present invention is capable of reducing generated bit quantity in a video stream and improving picture quality in reproducing of images. Tables 1 and 2 are for comparing performance of the FDVS method with that of an improved FDVS method in accordance with the present invention. In Tables 1 and 2, video bit sequence MPEG-1 encoded as 30 frames per second is respectively converted into 15 frames and 7.5 frames.  
                                                                       TABLE 1                                       Conventional FDVS   Improved FDVS                Generated Bit       Generated           Test   Quantity   Average   Bit Quantity   Average       Image   (bytes)   PSNR (dB)   (bytes)   PSNR (dB)                    Football   845061   29.19   831462   29.58       Table Tennis   467328   30.79   456531   31.37       Garden   1217779   27.93   1193164   28.43                  
 
         [0057]    [0057]                                                 TABLE 2                                       Conventional FDVS   Improved FDVS                Generated Bit       Generated           Test   Quantity   Average   Bit Quantity   Average       Image   (bytes)   PSNR (dB)   (bytes)   PSNR (dB)               Football   489008   28.99   469577   29.34       Table Tennis   302333   30.68   291734   31.16       Garden   779824   27.59   764982   27.94                    
         [0058]    In Tables 1 and 2, by using football, table tennis and garden images of 120 frames as test images, a conventional FDVS method is compared with the improved FDVS method in accordance with the present invention in the bit generated quantity and picture quality aspects. Herein, a measure of the picture quality comparison is PSNR, for example.  
         [0059]    In comparison with the conventional FDVS method, picture quality is improved at maximum 0.6 dB and generated bit quantity is reduced in the improved FDVS method. In more detail, in the FDVS method in accordance with the present invention, it is possible to reduce generated bit quantity and improve picture quality simultaneously.  
         [0060]    Referring to FIGS. 5A and 5B, table tennis images as MPEG-1 encoded 120 frames by 1.5 Mbps are used as test images, and the test images are converted into 15 frames per second through the frame-rate conversion video transcoder, for example. Sequence conversion occurs in the 68th frame and the 98th frame of the test images. When the sequence conversion occurs, many macroblocks in a P-frame are determined as intra types due to performance lowering of predictive encoding.  
         [0061]    [0061]FIG. 5A is a graph for comparing PSNR by each frame when the test images are converted into 15 frames per second. In applying of the conventional FDVS method, after the 68th frame and the 98th frame at which the sequence conversion occur are skipped, picture quality is lowered sharply at the 69th frame and the 99th frame, for example. However, in applying the improved FDVS method in accordance with the present invention, the same picture quality can be maintained at the 69th frame and the 99th frame.  
         [0062]    [0062]FIG. 5B is a graph showing the number of intra type macroblocks and the number of skipped type macroblocks generated at each frame of the test sequences. At the 68th frame and the 98th frame in which sequence conversion occurs, the number of intra type macroblocks is increased sharply. Accordingly, the motion vector and macroblock type determining method considering not only inter type macroblocks but also intra type and skipped type macroblocks is required. As such, by applying the present invention considering a type of each macroblock, picture quality can be improved.  
         [0063]    In the motion vector and macroblock type determining method in accordance with the present invention, it is possible to reallocate accurately a motion vector and a macroblock type of a frame transmitted without being skipped through a frame-rate conversion video transcoder. In the motion vector and macroblock type determining method in accordance with the present invention, although performance of predictive encoding such as sequence conversion is lowered, it is possible to improve picture quality and reduce generated bit quantity.  
         [0064]    The embodiments described above are to be considered in all aspects as illustrative only and not restrictive in any manner. Thus, other exemplary embodiments, system architectures, platforms, and implementations that can support various aspects of the invention may be utilized without departing from the essential characteristics described herein. These and various other adaptations and combinations of features of the embodiments disclosed are within the scope of the invention. The invention is defined by the claims and their full scope of equivalents.