Abstract:
Intra prediction is used in state-of-the-art video coding standards such as AVC. The intra prediction modes are coded into the bitstream. Luma and chroma components could potentially have different prediction modes. For chroma components, there are 5 different modes defined in AVC: vertical, horizontal, DC, diagonal down right, and “same as luma”. Statistics show that the “same as luma” mode is frequent used, but in AVC, this mode is encoded using more bits than other modes during entropy coding, therefore the coding efficiency is decreased. Accordingly, a modified binarization/codeword assignment for chroma intra mode signaling is able to be utilized for high efficiency video coding (HEVC), the next generation video coding standard.

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S) 
       [0001]    This application claims priority under 35 U.S.C. §119(e) of the U.S. Provisional Patent Application Ser. No. 61/432,970, filed Jan. 14, 2011 and titled, “CODEWORD ASSIGNMENT FOR INTRA CHROMA MODE SIGNALING FOR HEVC.” The Provisional Patent Application, Ser. No. 61/432,970, filed Jan. 14, 2011 and titled, “CODEWORD ASSIGNMENT FOR INTRA CHROMA MODE SIGNALING FOR HEVC” is also hereby incorporated by reference in its entirety for all purposes. 
         [0002]    This application also claims priority under 35 U.S.C. §119(e) of the U.S. Provisional Patent Application Ser. No. 61/432,957, filed Jan. 14, 2011 and titled, “CODEWORD SPACE REDUCTION FOR INTRA CHROMA MODE SIGNALING FOR HEVC.” The Provisional Patent Application, Ser. No. 61/432,957, filed Jan. 14, 2011 and titled, “CODEWORD SPACE REDUCTION FOR INTRA CHROMA MODE SIGNALING FOR HEVC” is also hereby incorporated by reference in its entirety for all purposes. 
     
    
     FIELD OF THE INVENTION 
       [0003]    The present invention relates to the field of image processing. More specifically, the present invention relates to a modified codeword assignment for intra chroma mode signaling for High Efficiency Video Coding (HEVC). 
       BACKGROUND OF THE INVENTION 
       [0004]    A standard binarization/Variable Length Coding (VLC) codeword assignment scheme used in Advanced Video Coding (AVC) is shown in Table 1. In AVC, the prediction mode for an intra coded block is signaled in the bitstream to the decoder. Possible chroma prediction modes/directions are vertical, horizontal, DC, diagonal and “same as luma.” The modes are each assigned a codeword from 0 through 4 and are signaled using truncated unary code in the bitstream. 
         [0000]    
       
         
               
             
               
               
               
             
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 Intra prediction mode for chroma component. 
               
             
          
           
               
                   
                 intra_pred_mode_chroma 
                 Binarization/VLC Codeword 
               
               
                   
                   
               
             
          
           
               
                   
                 0 (vertical) 
                 0 
               
               
                   
                 1 (horizontal) 
                 10 
               
               
                   
                 2 (DC) 
                 110 
               
               
                   
                 3 (diagonal down right) 
                 1110 
               
               
                   
                 4 (same as luma) 
                 1111 
               
               
                   
                   
               
             
          
         
       
     
         [0005]    A statistical study shows that there is a high probability for the chroma components to use the sample prediction direction as the luma component of the block. However, the “same as luma” mode is assigned the longest codeword in Table 1 (4 bits), which is not efficient. On the other hand, redundancy also exists between mode 4 and mode 0˜3, when the luma prediction mode is one of vertical, horizontal, DC and diagonal down right. Therefore, a better design of the codeword table is needed. 
       SUMMARY OF THE INVENTION 
       [0006]    Intra prediction is used in state-of-the-art video coding standards such as AVC. The intra prediction modes are coded into the bitstream. Luma and chroma components could potentially have different prediction modes. For chroma components, there are 5 different modes defined in AVC: vertical, horizontal, DC, diagonal down right, and “same as luma.” Statistics show that the “same as luma” mode is frequently used, but in AVC, this mode is encoded using more bits than other modes during entropy coding, therefore the coding efficiency is decreased. Accordingly, a modified binarization/codeword assignment for chroma intra mode signaling is able to be utilized for high efficiency video coding (HEVC), the next generation video coding standard. 
         [0007]    In one aspect, a method programmed in a controller of a device comprises programming a codeword assignment and performing intra coding prediction using the codeword assignment. The codeword assignment comprises five modes including vertical, horizontal, DC, diagonal down right and same as luma. A codeword for the same as luma mode includes the fewest bits of the five modes. The method further comprises determining if the mode of the same as luma is the same as one of the other modes, and if the mode of the same as luma is the same as one of the other modes, then reconfiguring the codeword assignment so that the same mode is removed and remaining mode codewords are reduced in bits. The intra coding prediction is used to decode an image. The codeword assignment is programmed in a memory of the device. The codeword assignment includes programming hardware logic. The device is selected from the group consisting of a personal computer, a laptop computer, a computer workstation, a server, a mainframe computer, a handheld computer, a personal digital assistant, a cellular/mobile telephone, a smart appliance, a gaming console, a digital camera, a digital camcorder, a camera phone, an iPod®/iPhone/iPad, a video player, a DVD writer/player, a Blu-ray® writer/player, a television and a home entertainment system. 
         [0008]    In another aspect, an apparatus for implementing a codeword assignment comprises a programming module for programming a codeword assignment wherein the codeword assignment includes a same as luma codeword with a fewest bits of codewords and an intra coding prediction module for performing intra coding prediction using the codeword assignment. The codeword assignment comprises five modes including vertical, horizontal, DC, diagonal down right and the same as luma. The apparatus further comprises a comparison module for determining if a same as luma mode value is equal to another codeword mode value. The apparatus further comprises a reconfiguring module for reconfiguring the codeword assignment, if the luma mode value is equal to another codeword mode value. Reconfiguring the codeword assignment includes removing the same mode and reducing bits in remaining mode codewords. The intra coding prediction is used to decode an image. The codeword assignment is programmed in a memory of the device. The codeword assignment includes programming hardware logic. The apparatus is selected from the group consisting of a personal computer, a laptop computer, a computer workstation, a server, a mainframe computer, a handheld computer, a personal digital assistant, a cellular/mobile telephone, a smart appliance, a gaming console, a digital camera, a digital camcorder, a camera phone, an iPod®/iPhone/iPad, a video player, a DVD writer/player, a Blu-ray® writer/player, a television and a home entertainment system. 
         [0009]    In another aspect, an apparatus comprises a memory for storing an application, the application for programming a codeword assignment including five modes including vertical, horizontal, DC, diagonal down right and same as luma, wherein same as luma includes a fewest bits of the modes and performing intra coding prediction using the codeword assignment and a processing component coupled to the memory, the processing component configured for processing the application. The apparatus further comprises determining if the mode of the same as luma is the same as one of the other modes, and if the mode of the same as luma is the same as one of the other modes, then reconfiguring the codeword assignment so that the same mode is removed and remaining mode codewords are reduced in bits. The intra coding prediction is used to decode an image. The apparatus is selected from the group consisting of a personal computer, a laptop computer, a computer workstation, a server, a mainframe computer, a handheld computer, a personal digital assistant, a cellular/mobile telephone, a smart appliance, a gaming console, a digital camera, a digital camcorder, a camera phone, an iPod®/iPhone/iPad, a video player, a DVD writer/player, a Blu-ray® writer/player, a television and a home entertainment system. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]      FIG. 1  illustrates a flowchart of a method of intra coding prediction using a modified codeword assignment according to some embodiments. 
           [0011]      FIG. 2  illustrates a flowchart of a method of modifying a codeword assignment according to some embodiments. 
           [0012]      FIG. 3  illustrates a block diagram of a coder/decoder (codec) according to some embodiments. 
           [0013]      FIG. 4  illustrates a block diagram of an exemplary computing device configured to implement a modified codeword assignment according to some embodiments. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0014]    Since the texture pattern of luma and chroma components are correlated, often times the mode used for the luma prediction is also good for the chroma prediction. Thus, the “same as luma” mode is likely to be the best mode. Therefore, a redefined binarization/Variable Length Coding (VLC) scheme is shown in Table 2. As shown, the “same as luma” mode has the shortest codeword (only 1 bit) in the improved scheme. 
         [0000]    
       
         
               
             
               
               
               
             
               
               
               
             
           
               
                 TABLE 2 
               
             
             
               
                   
               
               
                 Standard Binarization/VLC codeword versus 
               
               
                 Improved Binarization/VLC codeword. 
               
             
          
           
               
                   
                 Standard 
                 Improved 
               
               
                   
                 Binarization/ 
                 Binarization/ 
               
               
                 intra_pred_mode_chroma 
                 VLC Codeword 
                 VLC Codeword 
               
               
                   
               
             
          
           
               
                 0 (vertical) 
                 0 
                 10 
               
               
                 1 (horizontal) 
                 10 
                 110 
               
               
                 2 (DC) 
                 110 
                 1110 
               
               
                 3 (diagonal down right) 
                 1110 
                 1111 
               
               
                 4 (same as luma) 
                 1111 
                 0 
               
               
                   
               
             
          
         
       
     
         [0015]    Furthermore, chroma intra modes are not mutually exclusive. For example, if the luma intra mode is vertical, then the “same as luma” is the same as vertical. Therefore, codeword space reduction is able to be used to further improve coding efficiency, such that if the luma mode is one of vertical, horizontal, DC or diagonal down right, the corresponding mode is removed from the chroma mode list, and accordingly, the codeword space of the truncated unary code is reduced from 0 through 4 to 0 through 3. Table 3 shows a complete list of codewords. 
         [0000]    
       
         
               
             
               
               
             
               
               
               
               
               
               
             
               
               
               
               
               
               
             
           
               
                 TABLE 3 
               
             
             
               
                   
               
               
                 List of codewords using codeword space reduction. 
               
             
          
           
               
                   
                 intra_pred_mode_luma 
               
             
          
           
               
                 intra_pred_mode_chroma 
                 0 
                 1 
                 2 
                 3 
                 others 
               
               
                   
               
             
          
           
               
                 0 (vertical) 
                 n/a 
                 10 
                 10 
                 10 
                 10 
               
               
                 1 (horizontal) 
                 10 
                 n/a 
                 110 
                 110 
                 110 
               
               
                 2 (DC) 
                 110 
                 110 
                 n/a 
                 111 
                 1110 
               
               
                 3 (diagonal down right) 
                 111 
                 111 
                 111 
                 n/a 
                 1111 
               
               
                 4 (same as luma) 
                 0 
                 0 
                 0 
                 0 
                 0 
               
               
                   
               
             
          
         
       
     
         [0016]      FIG. 1  illustrates a flowchart of a method of intra coding prediction using a modified codeword assignment according to some embodiments. In the step  100 , a modified codeword assignment is programmed. In some embodiments, programming includes storing the assignment in memory. In some embodiments, programming includes designing hardware to implement the assignment. In some embodiments, another method of programming is implemented. Table 3 (above) shows an example of the modified codeword assignment where the “same as luma” codeword uses the fewest bits. In the step  102 , the modified codeword assignment is utilized to perform intra coding prediction (e.g. determining a directional prediction mode). In some embodiments, fewer or additional steps are implemented. 
         [0017]      FIG. 2  illustrates a flowchart of a method of modifying a codeword assignment according to some embodiments. In the step  200 , a modified codeword assignment is programmed. In some embodiments, programming includes storing the assignment in memory. In some embodiments, programming includes designing hardware to implement the assignment. In some embodiments, another method of programming is implemented. In the step  202 , it is determined if the mode value of “same as luma” is the same as one of the mode codewords. If the mode value of “same as luma” is not the same as one of the mode codewords, then the codeword assignment is not modified further, and the process goes to the step  206 . If the mode value of “same as luma” is the same as one of the mode codewords, then in the step  204 , that mode codeword is removed or not used, and the remaining mode codewords are reconfigured and the codeword assignment is modified again. For example, the codewords are reconfigured as shown in Table 4 above. In the step  206 , the modified codeword assignment is utilized to perform intra coding prediction (e.g. determining a directional prediction mode). The steps of modifying the codeword assignment is able to be repeated as needed. In some embodiments, fewer or additional steps are implemented. For example, in some embodiments, the step  200  is skipped or moved. 
         [0018]      FIG. 3  illustrates a block diagram of a coder/decoder (codec) according to some embodiments. An input video is received at the codec  300 , and the video is split into a plurality of blocks. The codec  300  includes encoder components including: a Transform/Quantization module  302  where transform coefficients are scaled and quantized, an entropy encoder  304  such as a Context Adaptive Binary Arithmetic Coding (CABAC) performs entropy coding, an inverse Transform/Quantization module  306  applies an inverse transform/quantization, a deblocking filter  308  is implemented to control the strength of the filtering to reduce the pixelation of the image, an adaptive loop filter  310  improves coding efficiency by applying filters to the deblocking-filtered image and a predictor  312  performs prediction steps. The codec  300  also includes decoder components including: an entropy decoder  314  for implementing entropy decoding, a second inverse Transform/Quantization module  316 , a second deblocking filter  318 , a second adaptive loop filter  320  and a second predictor  322 , which perform similar operations to those described above except in a decoding implementation. In the predictor  312 , the modified codeword assignment is implemented to provide more efficient intra mode prediction. Fewer or additional components are able to be included as well. 
         [0019]      FIG. 4  illustrates a block diagram of an exemplary computing device  400  configured to implement the modified codeword assignment according to some embodiments. The computing device  400  is able to be used to acquire, store, compute, process, communicate and/or display information such as images, videos and audio. For example, a computing device  400  is able to acquire and store an image. The modified codeword assignment is able to be used during or after acquiring the image, or when displaying the image on the device  400 . In general, a hardware structure suitable for implementing the computing device  400  includes a network interface  402 , a memory  404 , a processor  406 , I/O device(s)  408 , a bus  410  and a storage device  412 . The choice of processor is not critical as long as a suitable processor with sufficient speed is chosen. The memory  404  is able to be any conventional computer memory known in the art. The storage device  412  is able to include a hard drive, CDROM, CDRW, DVD, DVDRW, flash memory card or any other storage device. The computing device  400  is able to include one or more network interfaces  402 . An example of a network interface includes a network card connected to an Ethernet or other type of LAN. The I/O device(s)  408  are able to include one or more of the following: keyboard, mouse, monitor, display, printer, modem, touchscreen, button interface and other devices. In some embodiments, the hardware structure includes multiple processors and other hardware to perform parallel processing. Modified codeword assignment application(s)  430  used to implement the modified syntax are likely to be stored in the storage device  412  and memory  404  and processed as applications are typically processed. More or less components shown in  FIG. 4  are able to be included in the computing device  400 . In some embodiments, modified codeword assignment hardware  420  is included. Although the computing device  400  in  FIG. 4  includes applications  430  and hardware  420  for implementing the modified codeword assignment, the modified codeword assignment is able to be implemented on a computing device in hardware, firmware, software or any combination thereof. For example, in some embodiments, the modified codeword assignment applications  430  are programmed in a memory and executed using a processor. In another example, in some embodiments, the modified codeword assignment hardware  420  is programmed hardware logic including gates specifically designed to implement the method. 
         [0020]    In some embodiments, the modified codeword assignment application(s)  430  include several applications and/or modules. Modules include a programming module for programming a modified codeword assignment, an intra coding prediction module for performing the intra coding prediction using the modified codeword assignment, a comparison module for determining if the “same as luma” mode value is equal to one of the mode codewords and a reconfiguring module for reconfiguring the codeword assignment. In some embodiments, modules include one or more sub-modules as well. In some embodiments, fewer or additional modules are able to be included. 
         [0021]    Examples of suitable computing devices include a personal computer, a laptop computer, a computer workstation, a server, a mainframe computer, a handheld computer, a personal digital assistant, a cellular/mobile telephone, a smart appliance, a gaming console, a digital camera, a digital camcorder, a camera phone, an iPod®/iPhone/iPad, a video player, a DVD writer/player, a Blu-ray® writer/player, a television, a home entertainment system or any other suitable computing device. 
         [0022]    To utilize the modified codeword assignment, a user acquires a video/image such as on a digital camcorder, and while or after the video is acquired, or when displaying the video, the modified codeword assignment is utilized in the intra coding prediction aspect of encoding the video. The modified codeword assignment is able to be implemented automatically without user involvement. 
         [0023]    In operation, the modified codeword assignment enables more efficient prediction. A simple modified codeword assignment is able to be used where “same as luma” has the shortest codeword, or a slightly more complex codeword assignment is able to be used where the codeword assignment change depending on whether “same as luma” mode is the same as one of the other modes. In some embodiments, the luma prediction is checked at the encoder, the decoder or both. 
       Some Embodiments of Codeword Assignment for Intra Chroma Mode Signaling for HEVC 
       [0000]    
       
         1. A method programmed in a controller of a device comprising:
       a. programming a codeword assignment; and   b. performing intra coding prediction using the codeword assignment.   
     
         2. The method of clause 1 wherein the codeword assignment comprises five modes including vertical, horizontal, DC, diagonal down right and same as luma. 
         3. The method of clause 2 wherein a codeword for the same as luma mode includes the fewest bits of the five modes. 
         4. The method of clause 3 further comprising determining if the mode of the same as luma is the same as one of the other modes, and if the mode of the same as luma is the same as one of the other modes, then reconfiguring the codeword assignment so that the same mode is removed and remaining mode codewords are reduced in bits. 
         5. The method of clause 1 wherein the intra coding prediction is used to decode an image. 
         6. The method of clause 1 wherein the codeword assignment is programmed in a memory of the device. 
         7. The method of clause 1 wherein the codeword assignment includes programming hardware logic. 
         8. The method of clause 1 wherein the device is selected from the group consisting of a personal computer, a laptop computer, a computer workstation, a server, a mainframe computer, a handheld computer, a personal digital assistant, a cellular/mobile telephone, a smart appliance, a gaming console, a digital camera, a digital camcorder, a camera phone, an iPod®/iPhone/iPad, a video player, a DVD writer/player, a Blu-ray® writer/player, a television and a home entertainment system. 
         9. An apparatus for implementing a codeword assignment comprising:
       a. a programming module for programming a codeword assignment wherein the codeword assignment includes a same as luma codeword with a fewest bits of codewords; and   b. an intra coding prediction module for performing intra coding prediction using the codeword assignment.   
     
         10. The apparatus of clause 9 wherein the codeword assignment comprises five modes including vertical, horizontal, DC, diagonal down right and the same as luma. 
         11. The apparatus of clause 9 further comprising a comparison module for determining if a same as luma mode value is equal to another codeword mode value. 
         12. The apparatus of clause 11 further comprising a reconfiguring module for reconfiguring the codeword assignment, if the luma mode value is equal to another codeword mode value. 
         13. The apparatus of clause 12 wherein reconfiguring the codeword assignment includes removing the same mode and reducing bits in remaining mode codewords. 
         14. The apparatus of clause 9 wherein the intra coding prediction is used to decode an image. 
         15. The apparatus of clause 9 wherein the codeword assignment is programmed in a memory of the device. 
         16. The apparatus of clause 9 wherein the codeword assignment includes programming hardware logic. 
         17. The apparatus of clause 9 wherein the apparatus is selected from the group consisting of a personal computer, a laptop computer, a computer workstation, a server, a mainframe computer, a handheld computer, a personal digital assistant, a cellular/mobile telephone, a smart appliance, a gaming console, a digital camera, a digital camcorder, a camera phone, an iPod®/iPhone/iPad, a video player, a DVD writer/player, a Blu-ray® writer/player, a television and a home entertainment system. 
         18. An apparatus comprising:
       a. a memory for storing an application, the application for:
           i. programming a codeword assignment including five modes including vertical, horizontal, DC, diagonal down right and same as luma, wherein same as luma includes a fewest bits of the modes; and   ii. performing intra coding prediction using the codeword assignment; and   
           b. a processing component coupled to the memory, the processing component configured for processing the application.   
     
         19. The apparatus of clause 18 further comprising determining if the mode of the same as luma is the same as one of the other modes, and if the mode of the same as luma is the same as one of the other modes, then reconfiguring the codeword assignment so that the same mode is removed and remaining mode codewords are reduced in bits. 
         20. The apparatus of clause 18 wherein the intra coding prediction is used to decode an image. 
         21. The apparatus of clause 18 wherein the apparatus is selected from the group consisting of a personal computer, a laptop computer, a computer workstation, a server, a mainframe computer, a handheld computer, a personal digital assistant, a cellular/mobile telephone, a smart appliance, a gaming console, a digital camera, a digital camcorder, a camera phone, an iPod®/iPhone/iPad, a video player, a DVD writer/player, a Blu-ray® writer/player, a television and a home entertainment system. 
       
     
         [0053]    The present invention has been described in terms of specific embodiments incorporating details to facilitate the understanding of principles of construction and operation of the invention. Such reference herein to specific embodiments and details thereof is not intended to limit the scope of the claims appended hereto. It will be readily apparent to one skilled in the art that other various modifications may be made in the embodiment chosen for illustration without departing from the spirit and scope of the invention as defined by the claims.