Abstract:
Techniques for transforming the prediction error of intra-coded blocks using mode-dependent transform functions. In an embodiment, an encoder selects a set of transform functions to represent prediction error based on the spatial mode used for prediction. In an alternative embodiment, a decoder reconstructs an image block by using the signaled spatial mode to derive the corresponding set of transform functions. No additional signaling between encoder and decoder is required as compared to prior art implementations.

Description:
This patent application is based on and claims priority to U.S. patent application Ser. No. 60/912,364, filed Apr. 17, 2007, and is a co-pending application of U.S. patent application Ser. No. 12/040,673, filed Feb. 29, 2008, entitled Pixel-By-Pixel Weighting For Intra-Frame Coding, and U.S. patent application Ser. No. 12/040,696, filed Feb. 29, 2008, entitled Mode Uniformity Signaling For Intra-Coding, all of which can be assigned to the assignee of the present invention, the contents of which are hereby expressly incorporated by reference herein. 9   
     CLAIM OF PRIORITY 
     This patent application is based on and claims priority to U.S. patent application Ser. No. 60/912,364, filed Apr. 17, 2007, and is a application entitled Pixel-By-Pixel Weighting For Intra-Frame Coding, and entitled Mode Uniformity Signaling For Intra-Coding, all of which can be assigned to the assignee of the present invention, the contents of which are hereby expressly incorporated by reference herein. 
     This patent application is based on and claims priority to U.S. patent application Ser. No. 60/912,364, filed Apr. 17, 2007, and is a co-pending application of U.S. patent application Ser. No. 12/040,673, filed Feb. 29, 2008, entitled Pixel-By-Pixel Weighting For Intra-Frame Coding, and U.S. patent application Ser. No. 12/040,696, filed Feb. 29, 2008, entitled Mode Uniformity Signaling For Intra-Coding, all of which can be assigned to the assignee of the present invention, the contents of which are hereby expressly incorporated by reference herein. 
    
    
     TECHNICAL FIELD 
     The disclosure relates to digital video processing and, more particularly, to techniques for intra-frame video encoding and decoding. 
     BACKGROUND 
     In video encoding, a frame of a video sequence may be partitioned into rectangular regions or blocks. A video block may be encoded in Intra-mode (I-mode) or Inter-mode (P-mode). 
       FIG. 1  shows a diagram of a prior art video encoder for the I-mode. In  FIG. 1 , a spatial predictor  102  forms a predicted block  103  from video block  100  by using pixels from neighboring blocks in the same frame. The neighboring blocks used for prediction may be specified by a spatial mode  101 . A summer  104  computes the prediction error  106 , i.e., the difference between the image block  100  and the predicted block  103 . Transform module  108  projects the prediction error  106  onto a set of basis or transform functions. In typical implementations, the transform functions can be derived from the discrete cosine transform (DCT), Karhunen-Loeve Transform (KLT), or any other transforms. A set of transform functions can be expressed as {f 0 , f 1 , f 2 , . . . , f N }, where each f n  denotes an individual transform function. 
     The transform module  108  outputs a set of transform coefficients  110  corresponding to the weights assigned to each of the transform functions. For example, a set of coefficients {c 0 , c 1 , c 2 , . . . , c N } may be computed, corresponding to the set of transform functions {f 0 , f 1 , f 2 , . . . , f N }. The transform coefficients  110  are subsequently quantized by quantizer  112  to produce quantized transform coefficients  114 . The quantized coefficients  114  and spatial mode  101  may be transmitted to the decoder. 
       FIG. 1A  depicts a video decoder for the I-mode. In  FIG. 1A , quantized coefficients  1000  are provided by the encoder to the decoder, and supplied to the inverse transform module  1004 . The inverse transform module  1004  reconstructs the prediction error  1003  based on the coefficients  1000  and the fixed set of transform functions, e.g., {f 0 , f 1 , f 2 , . . . , f N }. The spatial mode  1002  is supplied to the inverse spatial prediction module  1006 , which generates a predicted block  1007  based on pixel values of already decoded neighboring blocks. The predicted block  1007  is combined with the prediction error  1003  to generate the reconstructed block  1010 . The difference between the reconstructed block  1010  and the original block  100  in  FIG. 1  is known as the reconstruction error. 
     An example of a spatial predictor  102  in  FIG. 1  is herein described with reference to document VCEG-N54, published by ITU—Telecommunication Standardization Sector of Video Coding Expert Group (VCEG) in September 2001. In the embodiment, a coder offers 9 spatial modes of prediction for 4×4 blocks, including DC prediction (Mode  2 ) and 8 directional modes, labeled  0  through  8 , as shown in  FIG. 2 . Each spatial mode specifies a set of already encoded pixels to use to encode a neighboring pixel, as illustrated in  FIG. 3 . In  FIG. 3 , the pixels from a to p are to be encoded, and already encoded pixels A to L are used for predicting the pixels a to p. If, for example, Mode  0  is selected, then pixels a, e, i and m are predicted by setting them equal to pixel A, and pixels b, f, j and n are predicted by setting them equal to pixel B, etc. Similarly, if Mode  1  is selected, pixels a, b, c and d are predicted by setting them equal to pixel I, and pixels e, f, g and h are predicted by setting them equal to pixel J, etc. Thus, Mode  0  is a predictor in the vertical direction; and Mode  1  is a predictor in the horizontal direction. The encoder is further described in the aforementioned document, and in document JVT-B118r4, published by the Joint Video Team of ISO/IEC MPEG and ITU-T VCEG in February 2002. 
     It has been noted that when performing the mode-based spatial prediction described above, the reconstruction error may exhibit regular spatial patterns. For example, the reconstruction error may have strong correlation in the direction corresponding to the mode used for prediction. It would be desirable to reduce the reconstruction error by reducing direction-dependent spatial patterns in the reconstruction error. 
     SUMMARY 
     An aspect of the present disclosure provides a method for encoding an image block, the image block comprising a set of pixel values, the method comprising selecting a spatial mode for predicting pixels in the image block based on neighboring pixels; generating a predicted block for the image block based on the neighboring pixels and the selected spatial mode; computing a prediction error between the image block and the predicted block; based on the selected spatial mode, selecting at least one transform function for representing the prediction error; and transforming the prediction error using the at least one transform function to derive at least one transform coefficient. 
     Another aspect of the present disclosure provides a method for reconstructing an image block, the image block comprising a set of pixel values, the method comprising: receiving a spatial mode for predicting pixels in the image block based on neighboring pixels; generating a predicted block based on the spatial mode and neighboring pixels; based on the spatial mode, selecting at least one transform function for representing the prediction error; receiving at least one transform coefficient corresponding to the at least one transform function; generating the prediction error based on the at least one transform function and the at least one transform coefficient; and combining the predicted block and the prediction error to generate a reconstructed block. 
     Yet another aspect of the present disclosure provides an apparatus for encoding an image block, the image block comprising a set of pixel values, the apparatus comprising: a spatial predictor for selecting a spatial mode for predicting pixels in the image block based on neighboring pixels, the spatial predictor generating a predicted block, the difference between the predicted block and the image block comprising a prediction error; and a transform module for transforming the prediction error using at least one transform function, the transform module generating at least one transform coefficient corresponding to the at least one transform function; the transform module selecting the at least one transform function based on the spatial mode. 
     Yet another aspect of the present disclosure provides an apparatus for reconstructing an image block, the image block comprising a set of pixel values, the apparatus comprising an inverse spatial predictor for generating a predicted block, the inverse spatial predictor receiving a spatial mode for generating pixels in the predicted block based on neighboring pixels; and an inverse transform module for generating a prediction error, the inverse transform module receiving the spatial mode and at least one transform coefficient corresponding to at least one transform function, the inverse transform module further selecting the at least one transform function based on the spatial mode; the apparatus reconstructing the image block by combining the predicted block and the prediction error. 
     Yet another aspect of the present disclosure provides an apparatus for encoding an image block, the image block comprising a set of pixel values, the apparatus comprising means for selecting a spatial mode for generating a predicted block based on neighboring pixels, the difference between the image block and the predicted block comprising a prediction error; and means for transforming the prediction error into at least one transform coefficient using at least one transform function, the at least one transform function selected based on the spatial mode. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  shows a diagram of a prior art video encoder for the I-mode. 
         FIG. 1A  depicts a prior art video decoder for the I-mode. 
         FIG. 2  shows spatial modes described in document VCEG-N54, published by ITU—Telecommunication Standardization Sector of Video Coding Expert Group (VCEG) in September 2001. 
         FIG. 3  illustrates pixel prediction using spatial modes. 
         FIG. 4  depicts an embodiment of an encoder according to the present disclosure. 
         FIG. 5  depicts an embodiment of a decoder according to the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     Disclosed herein are techniques for providing mode-dependent transform functions to represent the prediction error. 
     In an embodiment, a transform module projects the prediction error from the spatial predictor onto transform functions that are selected based on the spatial mode. The transform module may select a unique set of transform functions for each spatial mode. For example, the mode-dependent transform functions may be characterized as shown in the following table: 
                         TABLE 1               Mode   Set of transform functions                   0   {f 00 , f 10 , f 20 , . . . , f N0 }       1   {f 01 , f 11 , f 21 , . . . , f N1 }       2   {f 02 , f 12 , f 22 , . . . , f N2 }       etc.   etc.                    
In Table 1, f xy  denotes the x-th transform function corresponding to the y-th spatial mode.
 
     According to the present disclosure, the mode chosen by the spatial predictor uniquely specifies the particular set of transform functions used to represent the prediction error associated with that mode. Hence only the mode needs to be signaled from the encoder to the decoder to allow the decoder to recover the appropriate transform functions. Accordingly, no additional signaling is needed between encoder and decoder as compared to the implementations shown in  FIGS. 1 and 1A . 
     Note while Table 1 shows an embodiment wherein (N+1) functions are assigned to each mode, the number of functions assigned to each mode need not be the same. For example, in an embodiment, mode  0  may have (N+1) assigned transform functions, while mode  1  may have N assigned transform functions, mode  2  may have (N−1) assigned transform functions, etc. 
       FIG. 4  depicts an embodiment of an encoder according to the present disclosure. Numbered elements in  FIG. 4  correspond to similarly numbered elements in  FIG. 1 . The operation of the encoder in  FIG. 4  is similar to that of  FIG. 1 , except that the spatial mode  101  selected by the spatial predictor  102  is provided to a modified transform module  408 . According to the present disclosure, the spatial mode  101  indicates to the transform module  408  which set of transform functions to use to transform the prediction error  106 . 
       FIG. 5  depicts an embodiment of a decoder according to the present disclosure. The quantized coefficients  500  and spatial mode  502  are signaled to the decoder from the encoder. Given the coefficients  500  and spatial mode  502 , the inverse transform module  504  reconstructs the prediction error  505 . The inverse transform module  504  has a priori knowledge of the set of transform functions corresponding to each mode, and thus, given the mode  504 , can generate the appropriate transform functions corresponding to the coefficients  500 . 
     The mode  502  is also provided to the inverse spatial predictor  506 , which derives the predicted block  507 . The predicted block  507  and the prediction error  505  are combined by adder  508  to generate the reconstructed video block  510 . 
     Note aspects of the present disclosure need not be limited to any particular mapping of mode to transform functions. In an embodiment, the set of transform functions for each mode may be empirically derived to minimize the reconstruction error of blocks encoded in that mode. For example, a set of transform functions for each mode may be derived by taking a suitably large number of “training” video blocks, and finding the set of transform functions that minimize the prediction error for each mode. For example, a set of transform functions for mode  0  may be determined by finding a best set of transform functions for representing the prediction error of 10,000 training blocks to be encoded in mode  0 . The transform functions may be based on the Karhunen-Loeve Transform (KLT), Discrete Cosine Transform (DCT), or any other transforms known in the art. 
     Based on the teachings described herein, it should be apparent that an aspect disclosed herein may be implemented independently of any other aspects and that two or more of these aspects may be combined in various ways. The techniques described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in hardware, the techniques may be realized using digital hardware, analog hardware or a combination thereof. If implemented in software, the techniques may be realized at least in part by a computer-program product that includes a computer readable medium on which one or more instructions or code is stored. 
     By way of example, and not limitation, such computer-readable media can comprise RAM, such as synchronous dynamic random access memory (SDRAM), read-only memory (ROM), non-volatile random access memory (NVRAM), ROM, electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), FLASH memory, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. 
     The instructions or code associated with a computer-readable medium of the computer program product may be executed by a computer, e.g., by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, ASICs, FPGAs, or other equivalent integrated or discrete logic circuitry. 
     A number of aspects and examples have been described. However, various modifications to these examples are possible, and the principles presented herein may be applied to other aspects as well. These and other aspects are within the scope of the following claims.