Abstract:
A method of converting a video file to a Graphics Interchange Format (GIF) image includes converting a plurality of frames of a video file into corresponding frames of a GIF image, creating a first palette table for defining colors in each frame of a first set of consecutive frames of the GIF image, and creating a second palette table for defining colors in each frame of a second set of consecutive frames of the GIF image, wherein the first palette table is not equal to the second palette table and each frame in the first set of consecutive frames is distinct from each frame in the second set of consecutive frames.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The invention relates to Graphics Interchange Format Image (GIF) images, and more particularly to a method of converting a video file to become an animated GIF image in which consecutive frames of the GIF image share a same palette table for reducing the size of the GIF image. 
         [0003]    2. Description of the Prior Art 
         [0004]    Graphics Interchange Format Image (GIF) images have been used ever since 1987, and have been widely used on the World Wide Web since that time. GIFs are popular due to their properties of being able to use transparent backgrounds as well as for their animation effects. 
         [0005]    An animated GIF contains two or more frames that are displayed in succession. A time delay can be specified between successive frames, and viewing the succession of frames can give the appearance of the image being animated. 
         [0006]    The GIF format supports up to 8 bits per pixel, meaning that a single image can use a palette table that defines up to 256 colors. In an animated GIF, the same palette table can be shared for each frame within the animated GIF image, and this palette table will be referred to as a global palette. On the other hand, each frame can also be designed to have its own palette table that is not shared with other frames within the animated GIF image, and this palette table will be referred to as a local palette. Both global palettes and local palettes have their own advantages and disadvantages. Using local palettes allows the animated GIF image to have a greater number of colors since each frame can have its own color set, which improves the image quality over animated GIF images that use a global palette. In contrast, using a global palette reduces the file size of the GIF image by eliminating the need to use a separate palette for each frame of the GIF image. Having a reduced file size allows animated GIF images using global palettes to be downloaded faster than comparable animated GIF images using local palettes. 
         [0007]    However, there exists a need for animated GIF images having improved color as compared to GIFs using global palettes and reduced file size as compared to GIFs using local palettes. Therefore, the conventional palette structure is need of modification. 
       SUMMARY OF THE INVENTION 
       [0008]    It is therefore one of the primary objectives of the claimed invention to provide an improved method for converting a video file to a GIF image. 
         [0009]    According to an exemplary embodiment of the claimed invention, a method of converting a video file to a Graphics Interchange Format (GIF) image is disclosed. The method includes converting a plurality of frames of a video file into corresponding frames of a GIF image, creating a first palette table for defining colors in each frame of a first set of consecutive frames of the GIF image, and creating a second palette table for defining colors in each frame of a second set of consecutive frames of the GIF image, wherein the first palette table is not equal to the second palette table and each frame in the first set of consecutive frames is distinct from each frame in the second set of consecutive frames. 
         [0010]    According to another exemplary embodiment of the claimed invention, a method of converting a video file to a Graphics Interchange Format (GIF) image is disclosed. The method includes converting a plurality of frames of a video file into corresponding frames of a GIF image, and numbering each sequential frame in the GIF image with a frame number FN, wherein a first frame number in the GIF image has FN equal to one and sequential frames are numbered sequentially. The method further includes determining a value of FN modulo K, where K is an integer greater than or equal to two. A new palette table is created for defining colors for the frame in the GIF image when FN modulo K equals to one, and a previous palette table is used for defining colors for the frame in the GIF image when FN modulo K is equal to a value other than one, wherein the previous palette table used is a same palette table used for an immediately preceding frame in the GIF image. 
         [0011]    These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]      FIG. 1  is a functional block diagram of a video converting device according to the present invention. 
           [0013]      FIG. 2  is a flowchart describing the method of converting the video file to a GIF image according to the present invention. 
           [0014]      FIG. 3  is an example of the present invention method of using the same palette table for K consecutive frames of the GIF image when K is equal to three. 
       
    
    
     DETAILED DESCRIPTION 
       [0015]    Please refer to  FIG. 1 .  FIG. 1  is a functional block diagram of a video converting device  10  according to the present invention. The video converting device  10  contains a processor  12  for executing software commands and controlling operation of the video converting device  10 . A memory  20  stores a video file  22 , converting software  24 , as well as a resulting GIF image  26 . The video converting device  10  also may contain an optional display  14  for showing the video file  22  or the resulting GIF image  26 , and an input device  16  for allowing a user to control the video converting device  10 . 
         [0016]    The present invention seeks to create animated GIFs containing a palette table that combines the benefits of both a global palette and local palettes. This is accomplished by having consecutive frames of the animated GIF share the same palette table. When converting the video file  22  to become the GIF image  26 , consecutive frames of the video file  22  are often very similar to one another. Because of this, the consecutive frames share many common colors. The same is true for the GIF image  26  that results from the conversion of the video file  22  to the GIF image  26 . Since adjacent frames in the GIF image  26  are quite similar to one another, the colors used in consecutive frames will be nearly the same. The present invention takes advantage of this fact by creating what is referred to as an “interlaced palette”. The interlaced palette is a palette table that is used by two or more consecutive frames of the GIF image  26 . The number of consecutive frames that will use the same palette table will be referred to as K, where K is a constant integer that is greater than or equal to two. The user of the video converting device  10  may set the value of K to be different values, such as 2, 3, 4, and so on. In general, adjusting the value of K produces a tradeoff between adjusting the file size of the resulting GIF image  26  and the color quality of the resulting GIF image  26 . This tradeoff is similar to the tradeoff experienced when using a global palette versus using local palettes. In general, a smaller value of K will produce larger file sizes and better color quality than a larger value of K. 
         [0017]    Please refer to  FIG. 2 .  FIG. 2  is a flowchart describing the method of converting the video file  22  to a GIF image  26  according to the present invention. Steps in the flowchart will be explained as follows. 
         [0018]    Step  100 : The user of the video converting device  10  starts the video conversion process for converting the video file  22  to become the animated GIF image  26 . Frames of the video file  22  will become frames of the GIF image  26 , although there does not need to be an exact one-to-one correspondence of frames in the video file  22  to frames in the GIF image  26 . Frames of the video file  22  can be left out for reducing the size of the GIF image  26 . 
         [0019]    Step  102 : Starting with the first frame in the GIF image  26 , assign a frame number FN for each sequential frame in the GIF image  26 . Thus, the first frame will have the frame number FN equal to one. Each subsequent frame will have a frame number FN equal to the frame&#39;s location in the GIF image  26 . For instance, the second frame will have FN equal to two, the third frame will have FN equal to three, and so on. 
         [0020]    Step  104 : Convert the current frame to be an image in the RGB color space. 
         [0021]    Step  106 : Determine whether the value of FN modulo K is equal to one. The modulo operation is often abbreviated as “mod” in mathematics. When FN mod K = 1 , go to step  108 . This represents that the current frame is the start of a new set of frames that will use a new palette table. Otherwise, go to step  110 . 
         [0022]    Step  108 : Create a new palette table for the current frame for defining colors for the current frame. This new palette table will also be shared by at least one other frame immediately following the current frame. Go to step  112 . 
         [0023]    Step  110 : Use the previously created palette table for the current frame. The previously created palette table is the same palette table used for the immediately preceding frame in the GIF image  26 . 
         [0024]    Step  112 : Perform an image dithering process on the current frame, if desired. The image dithering process is used to create the illusion of color depth in the current frame, and is used to compensate for the limited number of colors available in the palette table used by the current frame. 
         [0025]    Step  114 : Compress the current frame by using a Lempel-Ziv-Welch (LZW) lossless data compression technique to reduce the file size of the current frame without degrading the visual quality. 
         [0026]    Step  116 : Add the current frame to the stream of the GIF image  26 . 
         [0027]    Step  118 : Determine if the current frame is the last frame in the GIF image  26 . If so, go to step  122 . If not, go to step  120 . 
         [0028]    Step  120 : Increment the value of FN by one since the next frame in the GIF image  26  will now become the current frame being operated on. Go to step  104 . 
         [0029]    Step  122 : End. 
         [0030]    Please refer to  FIG. 3 .  FIG. 3  is an example of the present invention method of using the same palette table, referred to as an interlaced palette, for K consecutive frames of the GIF image  26  when K is equal to three. For simplicity, only some of the frames in the GIF image  26  are shown. A first frame F 1 , a second frame F 2 , a third frame F 3 , a fourth frame F 4 , a fifth frame F 5 , a sixth frame F 6 , and an Mth frame FM are shown, where the Mth frame FM is not necessarily adjacent to the sixth frame F 6 , and M is an integer greater than or equal to two and also greater than K. Since K is equal to three, every set of three consecutive frames of the GIF image  26  will use the same interlaced palette. The first, second, and third frames F 1 , F 2 , and F 3  will use a first interlaced palette  220 . The fourth, fifth, and sixth frames F 4 , F 5 , and F 6  will use a second interlaced palette  222 . The Mth frame FM will use a last interlaced palette. If there are M frames in the GIF image  26 , and K is equal to three, then the number of interlaced palettes used will be equal to ┌M/3┐, where the ceiling function of M/3 represents the smallest integer greater than or equal to the value of M/3. For example, if M was equal to any of the values seven, eight, or nine, then there would be a total of three interlaced palettes used in the GIF image  26 . As another example, if M was equal to ten, then there would be a total of four interlaced palettes used in the GIF image  26 . Please keep in mind that this value of “3” would be replaced by whatever value of K is being used for the GIF image  26 . 
         [0031]    The simple calculation of determining when the frame number FN of the current frame divided by K has a remainder equal to 1, or FN mod K=1, will determine whether a new interlaced palette should be used or not. In the above example of  FIG. 3 , the first frame F 1  and the fourth frame F 4  have a value of FN mod K=1. Thus, a new interlaced palette is created when processing the frame of each of the first frame F 1  and the fourth frame F 4 . When processing the second frame F 2 , the third frame F 3 , the fifth frame F 5 , and the sixth frame F 6 , these frames will use the same interlaced palette as the frame immediately that immediately precedes it. 
         [0032]    The first interlaced palette  220  can be chosen based on the colors of only the first frame F 1  for simplicity. The second frame F 2  and the third frame F 3  will then use the same colors present in the first interlaced palette  220 . In other embodiments, the colors of the first interlaced palette  220  will be chosen based on all of the first frame F 1 , the second frame F 2 , and the third frame F 3  considered as a whole. 
         [0033]    In summary, the present invention uses an interlaced palette for consecutive frames of an animated GIF image, thereby reducing the number of palette tables needing to be used for the animated GIF image and reducing file size while at the same time still providing high color quality. The present invention takes advantage of the fact that consecutive frames of the animated GIF image are similar to one another, which reduces the number of unique colors needed for each set of consecutive frames. 
         [0034]    Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.