Moving pictures encoding with constant overall bit-rate

التفاصيل البيبلوغرافية
العنوان: Moving pictures encoding with constant overall bit-rate
Patent Number: 7,496,142
تاريخ النشر: February 24, 2009
Appl. No: 11/386184
Application Filed: March 22, 2006
مستخلص: A method and apparatus control bit rates used in a moving pictures encoder, such as an MPEG standard encoder. A sequence of moving pictures is divided into segments each of which comprises one or more groups of pictures. A constant overall bit rate is specified for the sequence of pictures, but variable bit rate encoding used within each segment. A difference between the number of bits allocated for encoding the segment and the actual bits used for encoding is determined, and the difference distributed over one or more subsequent segments.
Inventors: Hui, Yau Wai Lucas (Singapore, SG); Oh, Hong Lye (Singapore, SG)
Assignees: STMicroelectronics Asia Pacific Pte Ltd (Singapore, SG)
Claim: 1. A method for use in a moving pictures encoder for encoding a sequence of segments each having a plurality of pictures, each picture including a plurality of macroblocks, the method comprising the steps of: a) defining an overall target bit rate for encoding the sequence of segments; b) determining a bit allocation and target quantization step size for encoding a first segment of the sequence of segments based on a segment target bit rate calculated using said overall target bit rate; c) encoding said first segment using a variable bit rate encoding method according to the target quantization step size; d) determining a difference between the number of bits used to encode said first segment and said first segment bit allocation; e) distributing said difference for use in encoding at least one subsequent segment to determine a subsequent segment bit allocation; f) determining a new target quantization step size for encoding said subsequent segment on the basis of a new target segment bit rate calculated using said segment target bit rate and the distributed difference; and g) encoding said subsequent segment using a variable bit rate encoding method according to the new target quantization step size, wherein variable bit rate encoding is employed for encoding pictures within a segment whilst maintaining a substantially constant bit rate over said sequence.
Claim: 2. A method as claimed in claim 1 , wherein the steps d) to g) are carried out iteratively using the number of bits used to encode the subsequent segment and the subsequent segment bit allocation for determining said difference.
Claim: 3. A method as claimed in claim 1 , wherein each segment comprises at least one group of pictures having an I-picture.
Claim: 4. A method as claimed in claim 3 , wherein the at least one group of pictures further has at least one P picture and/or at least one B picture.
Claim: 5. A method as claimed in claim 4 , wherein said difference is distributed according to: delta_bits m =ƒ(m)×bits_diff where delta_bits m is the bits difference distributed to next m th segment in the sequence, m=1, . . . , k k is a positive integer, ƒ(m) is a bit distribution function, wherein Σ k ƒ(m)=1, and bits_diff is the difference between the number of bits used to encode the first segment and said first segment bit allocation.
Claim: 6. A method as claimed in claim 5 , where ƒ(m)=1/k.
Claim: 7. A method as claimed in claim 5 , wherein the steps d) to g) are carried out iteratively using the number of bits used to encode the subsequent segment and the subsequent segment bit allocation for determining said difference.
Claim: 8. A method as claimed in claim 7 , wherein the at least one group of pictures further has at least one P picture and/or at least one B picture.
Claim: 9. A method as claimed in claim 1 , wherein the new target quantization step size is calculated according to: [mathematical expression included] [mathematical expression included] where target_Q is the new target quantization step size, segment_BR is the new target bit rate, target_Q′ is the target quantization step size of the preceding segment, segment_BR′ is the target segment bit rate of the preceding segment, and K is a constant.
Claim: 10. A method as claimed in claim 9 , wherein for each subsequent segment the difference between the number of bits used to encode the segment and the segment bit allocation is determined according to: [mathematical expression included] where: bits_diff is said difference, segment_BR is the segment target bit rate, N segment is the number of coded images in the segment, and bits_segment is the actual number of bits used to encode the segment.
Claim: 11. A method as claimed in claim 10 , wherein said difference is distributed according to: delta_bits m =ƒ(m)×bits_diff where delta_bits m is the bits difference distributed to the next m th segment in the sequence, m=1, . . . , k, k is a positive integer, and ƒ(m) is a bit distribution function, where Σ k ƒ(m)=1.
Claim: 12. A method as claimed in claim 11 , where ƒ(m)=1/k.
Claim: 13. A method for encoding moving pictures in a moving pictures encoder wherein a sequence of images are provided as input, the sequence of images comprising a plurality of segments each having a plurality of images, the method including: a) defining an overall target bit rate for encoding the sequence of images; b) maintaining a distribution record of bits from at least one previously encoded segment allocated for use in encoding at least one segment to be encoded; c) determining a target segment bit rate for a segment of the sequence of images on the basis of the overall target bit rate and a bit rate change calculated from the corresponding allocated bits from the distribution record; d) determining a target segment encoding quality from the target segment bit rate, a preceding target segment bit rate and a preceding target segment encoding quality; and e) encoding the images of the segment according to the target segment encoding quality using a variable bit rate encoding technique taking into account scene complexities of the images in the segment, wherein maintaining said distribution record includes determining a difference between the number of bits used to encode a particular segment and the number of bits allocated for encoding the particular segment on the basis of the target segment encoding quality.
Claim: 14. A method as claimed in claim 13 , wherein steps b) to e) are carried out iteratively for said sequence of images.
Claim: 15. A method as claimed in claim 14 , wherein each segment comprises at least one group of pictures having an I-picture.
Claim: 16. A method as claimed in claim 13 , wherein the difference between the number of bits used to encode a particular segment and the number of bits allocated for encoding the particular segment is determined according to: [mathematical expression included] where: bits_diff is said difference, segment_BR is the segment target bit rate, N segment is the number of coded images in the segment, and bits_segment is the actual number of bits used to encode the segment.
Claim: 17. A method as claimed in claim 16 , wherein the allocation of bits in the distribution record is calculated according to: delta_bits m =ƒ(m)×bits_diff where delta_bits m is the bits difference allocated to next m th segment in the sequence, m=1, . . . , k, k is a positive integer, and ƒ(m) is a bit distribution function, where Σ k ƒ(m)=1.
Claim: 18. A method as claimed in claim 17 , where ƒ(m)=1/k.
Claim: 19. A method for controlling bit allocation in a moving pictures encoder for encoding a sequence of images comprising a plurality of segments each having a plurality of images, the method including, for each segment: determining a difference between a number of bits used for encoding a previous segment and a number of bits allocated for encoding the previous segment; calculating a bits distribution from the determined bits difference and a predetermined distribution function; calculating a bit rate change from the bits distribution and a predetermined number of images in the segment; calculating a target segment bit rate from the bit rate change and a predetermined target overall bit rate for the sequence of images; and determining a target segment encoding quality from the target segment bit rate.
Claim: 20. A method as claimed in claim 19 , wherein the bits distribution is calculated according to: delta_bits m =ƒ(m)×bits_diff where delta_bits m is the number of bits difference allocated to next m th segment in the sequence, m=1, . . . , k, k is a positive integer, and ƒ(m) is a bit distribution function, where Σ k ƒ(m)=1.
Claim: 21. A method as claimed in claim 20 , where ƒ(m)=1/k.
Claim: 22. A method as claimed in claim 20 , wherein the target segment encoding quality is calculated according to: [mathematical expression included] [mathematical expression included] where target_Q is the target segment encoding quality, segment_BR is the target segment bit rate, target_Q′ is the previous segment target segment encoding quality, segment_BR′ is the previous segment target segment bit rate, and K is a constant.
Claim: 23. An encoding quality adjustment processor for generating a target segment encoding quality value in a moving pictures encoder for encoding a series of segments each having at least one image using a variable bit rate encoding scheme whilst maintaining a substantially constant overall bit rate, comprising: a bits difference computation means coupled to receive a segment encoding bit utilization value and a target segment bit rate and generate therefrom a bits difference value representing a difference in bits allocated and bits used for encoding a segment; a bits distribution means coupled to the bits difference computation means for computing at least one bits distribution value from the bits difference value and a predetermined distribution function; a bit rate difference computation means coupled to the bits distribution means for computing a segment bit rate difference from the at least one bits distribution value and a predetermined number of images in a segment; a target segment bit rate adjustment means coupled to the bit rate difference computation means and the bit difference computation means for computing said target segment bit rate from the segment bit rate difference and a predetermined target overall bit rate for the sequence of segments; and an encoding quality computation means coupled to the target segment bit rate adjustment means for computing a target segment encoding quality value from said target segment bit rate.
Claim: 24. The encoding quality adjustment processor of claim 23 , wherein the bits difference computation means, bits distribution means, bit rate difference computation means, target segment bit rate adjustment means, and encoding quality computation means are structured to iteratively carry out their functions using the number of bits used to encode the subsequent segment and the subsequent segment bit allocation for determining said difference.
Claim: 25. The encoding quality adjustment processor of claim 23 , wherein each segment comprises at least one group of pictures having at least one P picture and/or at least one B picture.
Claim: 26. A moving picture encoder, comprising: a coding processor for encoding picture data based on macroblocks according to a quantization step size; a virtual buffer processor coupled to the coding processor for tracking a number of bits used for encoding successive macroblocks in a picture and a number of bits used for encoding successive pictures in a group of pictures; a quantization step size processor coupled to the coding processor for determining said quantization step size from a target number bits allocated for a picture and the number of bits already used for encoding macroblocks in that picture; a picture bit allocation processor coupled to the quantization step size processor for determining said target number of bits allocated for a picture from a target bit rate and the number of bits already used for encoding pictures in a current group of pictures; a bit rate adjustment processor coupled to the picture bit allocation processor, the virtual buffer processor and the quantization step size processor for determining said target bit rate from the number of bits already used for encoding successive pictures in the current group of pictures, a target encoding quantization step size and an average quantization step size for pictures in the current group of pictures; and a target encoding quantization step size processor coupled to the bit rate adjustment processor and the virtual buffer processor for determining said target encoding quantization step size from a predetermined target overall bit rate and the number of bits used for encoding a preceding group of pictures.
Claim: 27. The encoder of claim 26 , wherein each segment comprises at least one group of pictures having at least one P picture and/or at least one B picture.
Claim: 28. A method for use in a moving pictures encoder for encoding a sequence of segments by reference to a user-defined target overall bit rate, each segment having a plurality of pictures, each picture including a plurality of macroblocks, the method comprising: (a) allocating target bits for encoding a first picture based upon a target bit rate and a global complexity measure of a previously encoded picture; (b) encoding the first picture, including non-recursively determining a quantization step size for each macroblock of the first picture, the quantization step size being based upon the target bits allocated to the first picture, and encoding each macroblock of the first picture based upon the quantization step size for each macroblock; (c) determining a new target bit rate based upon a target quantization step size and the quantization step sizes of the first picture; and (d) allocating target bits for encoding a second picture based upon the new target bit rate and a global complexity measure of the first encoded picture.
Claim: 29. The method of claim 28 , wherein determining the new target bit rate further comprises determining the new target bit rate based upon the target quantization step size and an average of the quantization step sizes of the first encoded picture.
Claim: 30. The method of claim 28 , further comprising: repeating steps (a)-(d) until a first segment is encoded; and determining a new target quantization step size.
Claim: 31. The method of claim 30 , wherein determining the new target quantization step size comprises: determining a number of bits used to encode the first segment; determining a number of bits allocated to encode the first segment; determining a difference between the number of bits used to encode the first segment and the number of bits allocated to encode the first segment; distributing the difference to one or more subsequent segments for use in encoding the one or more subsequent segments; determining a target segment bit rate for a next subsequent segment, the target segment bit rate based upon the user-defined target overall bit rate and the difference distributed to the next subsequent segment; determining the new target quantization step size based upon the target segment bit rate; and repeating steps (a)-(d) for encoding the next subsequent segment according to the new target quantization step size.
Current U.S. Class: 37524/003
Patent References Cited: 5333012 July 1994 Singhal et al.
5598213 January 1997 Chung et al.
5606371 February 1997 Klein Gunnewiek et al.
5617145 April 1997 Huang et al.
5623424 April 1997 Azadegan et al.
5650860 July 1997 Uz
5892548 April 1999 Kim
0 804 035 October 1997
Primary Examiner: Wong, Allen
Attorney, Agent or Firm: Jorgenson, Lisa K.
Carlson, David V.
رقم الانضمام: edspgr.07496142
قاعدة البيانات: USPTO Patent Grants