US2008123738A1PendingUtilityA1

Systems methods for adjusting targeted bit allocation based on an occupancy level of a VBV buffer model

53
Assignee: KATSAVOUNIDIS IOANNISPriority: May 30, 2002Filed: Jan 29, 2008Published: May 29, 2008
Est. expiryMay 30, 2022(expired)· nominal 20-yr term from priority
H04N 19/124H04N 19/159H04N 19/142H04N 19/176H04N 19/14H04N 19/137H04N 19/115H04N 19/152H04N 19/149
53
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

The invention is related to methods and apparatus that advantageously improve bit rate control in a video encoder, such as an MPEG video encoder. One embodiment of the invention advantageously varies the targeted bit allocation for a picture to be encoded based on an occupancy level of a buffer model, such as a video buffer verifier (VBV) buffer model.

Claims

exact text as granted — not AI-modified
1 . A method implemented in computer executable form in a video encoding process for adjusting a targeted bit allocation T for a picture that is to be encoded and transmitted to a decoder, the method comprising:
 computing at an encoder a targeted bit allocation T for encoding the picture and storing in an encoder buffer;   determining a threshold from at least one desired occupancy level of a buffer model characterizing a decoder buffer status of the decoder;   adaptively adjusting the targeted bit allocation T at the encoder at least partially in response to a comparison of an occupancy status of the buffer model with the threshold; and   providing the adjusted targeted bit allocation T to the video encoding process.   
     
     
         2 . The method as defined in  claim 1 , wherein the targeted bit allocation T prior to adaptive adjustment is an original targeted bit allocation T and the threshold is a first threshold, further comprising:
 comparing the original targeted bit allocation T to the first threshold; and   adaptively adjusting the original targeted bit allocation T when the original targeted bit allocation T exceeds the first threshold but not otherwise.   
     
     
         3 . The method as defined in  claim 2 , wherein the first threshold corresponds to T mid , where T mid  comprises:
     T   mid   =V   status   −V   mid ,   
       where V status  is the occupancy status and V mid  is the desired occupancy level. 
     
     
         4 . The method as defined in  claim 1 , wherein the targeted bit allocation T prior to adaptive adjustment is an original targeted bit allocation T and the threshold is a second threshold, further comprising:
 comparing the original targeted bit allocation T to the second threshold; and   adaptively adjusting the original targeted bit allocation T when the original targeted bit allocation T is below the second threshold but not otherwise.   
     
     
         5 . The method as defined in  claim 1 , wherein the targeted bit allocation T prior to adaptive adjustment is an original targeted bit allocation T and the threshold includes a first threshold and a second threshold, further comprising:
 comparing the original targeted bit allocation T to at least one of the first threshold and the second threshold;   adaptively adjusting the original targeted bit allocation T when the original targeted bit allocation T exceeds the first threshold or when the targeted bit allocation T is below the second threshold, but not otherwise.   
     
     
         6 . The method as defined in  claim 1 , wherein computing the targeted bit allocation T for I-pictures, for P-pictures, and for B-pictures corresponds to computing T i , T p , and T p , respectively, where T i , T p , and T b  further comprise: 
       
         
           
             
               
                 
                   T 
                   i 
                 
                 = 
                 
                   max 
                    
                   
                     { 
                     
                       
                         ( 
                         
                           R 
                           
                             ( 
                             
                               1 
                               + 
                               
                                 
                                   
                                     N 
                                     p 
                                   
                                    
                                   
                                     X 
                                     p 
                                   
                                 
                                 
                                   
                                     X 
                                     t 
                                   
                                    
                                   
                                     K 
                                     p 
                                   
                                 
                               
                               + 
                               
                                 
                                   
                                     N 
                                     b 
                                   
                                    
                                   
                                     X 
                                     b 
                                   
                                 
                                 
                                   
                                     X 
                                     t 
                                   
                                    
                                   
                                     K 
                                     b 
                                   
                                 
                               
                             
                             ) 
                           
                         
                         ) 
                       
                       , 
                       
                         ( 
                         
                           bit_rate 
                           
                             8 
                             · 
                             picture_rate 
                           
                         
                         ) 
                       
                     
                     } 
                   
                 
               
               ; 
             
           
         
         
           
             
               
                 
                   T 
                   p 
                 
                 = 
                 
                   max 
                    
                   
                     { 
                     
                       
                         ( 
                         
                           R 
                           
                             ( 
                             
                               
                                 N 
                                 p 
                               
                               + 
                               
                                 
                                   
                                     N 
                                     b 
                                   
                                    
                                   
                                     K 
                                     p 
                                   
                                    
                                   
                                     X 
                                     b 
                                   
                                 
                                 
                                   
                                     K 
                                     b 
                                   
                                    
                                   
                                     X 
                                     p 
                                   
                                 
                               
                             
                             ) 
                           
                         
                         ) 
                       
                       , 
                       
                         ( 
                         
                           bit_rate 
                           
                             8 
                             · 
                             picture_rate 
                           
                         
                         ) 
                       
                     
                     } 
                   
                 
               
               ; 
               and 
             
           
         
         
           
             
               
                 
                   T 
                   b 
                 
                 = 
                 
                   max 
                    
                   
                     { 
                     
                       
                         R 
                         
                           ( 
                           
                             
                               N 
                               b 
                             
                             + 
                             
                               
                                 
                                   N 
                                   p 
                                 
                                  
                                 
                                   K 
                                   b 
                                 
                                  
                                 
                                   X 
                                   p 
                                 
                               
                               
                                 
                                   K 
                                   p 
                                 
                                  
                                 
                                   X 
                                   b 
                                 
                               
                             
                           
                           ) 
                         
                       
                       , 
                       
                         ( 
                         
                           bit_rate 
                           
                             8 
                             · 
                             picture_rate 
                           
                         
                         ) 
                       
                     
                     } 
                   
                 
               
               , 
             
           
         
       
       where R is a remaining number of bits allocated to a group of pictures to which the picture belongs, N p  and N b  are a number of P-pictures and B-pictures in the group of pictures, respectively, K b  and K p  are constants associated with complexity matrices for P-pictures and B-pictures, respectively, X i , X p  and X b  are complexity estimators for I-pictures, P-pictures and B-pictures, respectively, bit_rate is a bit rate of a transmission channel from the encoder to the decoder and picture_rate is a display rate of pictures. 
     
     
         7 . The method as defined in  claim 1 , wherein the adaptively adjusting further comprises multiplying the targeted bit allocation T by a factor α, where α comprises: 
       
         
           
             
               
                 α 
                 = 
                 
                   1 
                   + 
                   
                     
                       
                         V 
                         status 
                       
                       - 
                       
                         V 
                         target 
                       
                     
                     
                       
                         V 
                         high 
                       
                       - 
                       
                         V 
                         low 
                       
                     
                   
                 
               
               , 
             
           
         
       
       where V status  is the occupancy status, V target  is a desired occupancy level of the buffer model, V high  and V low  are high and low occupancy levels of the buffer model, respectively. 
     
     
         8 . The method as defined in  claim 7 , where V target  is about 7/8 of a capacity of the buffer model, where V high  is about 63/64 of the capacity of the buffer model, and where V low  is about 3/8 of the capacity of the buffer model. 
     
     
         9 . The method as defined in  claim 7 , wherein the targeted bit allocation T adaptively varies such that over time, the buffer occupancy level V status  of the buffer model trends to the desired buffer occupancy level V target . 
     
     
         10 . The method as defined in  claim 7 , where the desired buffer occupancy level V target  is configured by a user. 
     
     
         11 . The method as defined in  claim 1 , wherein the buffer model is a virtual buffer verifier (VBV) buffer model. 
     
     
         12 . The method as defined in  claim 1 , wherein the video encoding process is performed in real time, and where a constant bit rate is used to update a calculation of the buffer occupancy level. 
     
     
         13 . The method as defined in  claim 1 , further comprising bounding the targeted bit allocation T to a maximum value of T max , where T max  comprises:
     T   max   =V   status   −V   low ,   
       where V status  is the occupancy status and V low  is a low occupancy level of the buffer model. 
     
     
         14 . The method as defined in  claim 13 , wherein V low  is about 3/8 of a capacity of the buffer model. 
     
     
         15 . The method as defined in  claim 1 , wherein the video encoding process is performed in real time. 
     
     
         16 . A method implemented in computer executable form in a video encoding process for calculating a targeted bit allocation T for a picture that is to be encoded and transmitted to a decoder comprising:
 computing at an encoder a targeted bit allocation T for encoding the picture and storing in an encoder buffer;   determining a threshold from at least one desired occupancy level of a buffer model characterizing a decoder buffer status of the decoder;   scaling the targeted bit allocation T at the encoder by a factor at least partially in response to a comparison of an occupancy status of the buffer model with the threshold; and   providing the adjusted targeted bit allocation T to the video encoding process.   
     
     
         17 . The method as defined in  claim 16 , wherein the factor is a factor α, where α comprises: 
       
         
           
             
               
                 α 
                 = 
                 
                   1 
                   + 
                   
                     
                       
                         V 
                         status 
                       
                       - 
                       
                         V 
                         target 
                       
                     
                     
                       
                         V 
                         high 
                       
                       - 
                       
                         V 
                         low 
                       
                     
                   
                 
               
               , 
             
           
         
       
       where V status  the occupancy status, V target  is a desired occupancy level of the buffer model, V high  and V low  are high and low occupancy levels of the buffer model, respectively. 
     
     
         18 . The method as defined in  claim 17 , where V target  is about 7/8 of a capacity of the buffer model, where V high  is about 63/64 of the capacity of the buffer model, and where V low  is about 3/8 of the capacity of the buffer model. 
     
     
         19 . The method as defined in  claim 16 , wherein the targeted bit allocation T adaptively varies such that over time, the buffer occupancy level of the buffer model trends to the desired buffer occupancy level. 
     
     
         20 . The method as defined in  claim 16 , where the desired buffer occupancy level is configured by a user. 
     
     
         21 . The method as defined in  claim 16 , wherein the buffer model is a virtual buffer verifier (VBV) buffer model. 
     
     
         22 . The method as defined in  claim 16 , wherein the video encoding process is performed in real time, and where a constant bit rate is used to update a calculation of the buffer occupancy level. 
     
     
         23 . The method as defined in  claim 16 , further comprising bounding the targeted bit allocation T to a maximum value of T max , where T max  comprises:
     T   max   =V   status   −V   low ,   
       where V status  is the occupancy status and V low  is a low occupancy level of the buffer model. 
     
     
         24 . The method as defined in  claim 23 , wherein V low  is about 3/8 of a capacity of the buffer model. 
     
     
         25 . A computer readable medium with computer executable instructions for adjusting a targeted bit allocation T for a picture that is to be encoded and transmitted to a decoder, comprising:
 instructions for computing a targeted bit allocation T for storage in an encoder buffer;   instructions for determining a threshold from a desired occupancy level of a buffer model characterizing a decoder buffer status of the decoder;   instructions for comparing an occupancy status of the buffer model with the threshold; and   instructions for adaptively adjusting the targeted bit allocation T at least partially in response to the comparison.   
     
     
         26 . A circuit for adjusting a targeted bit allocation T for a picture that is to be encoded in a real-time video encoder and transmitted to a decoder, comprising:
 means at an encoder for computing a targeted bit allocation T for encoding the picture and storing in an encoder buffer;   means for determining a threshold from a desired occupancy level of a buffer model characterizing a decoder buffer status of the decoder;   means for comparing an occupancy status of the buffer model with the threshold;   means for adaptively adjusting the targeted bit allocation T at least partially in response to the comparison; and   means for providing the adjusted targeted bit allocation T to the video encoding process.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.