IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
UP-0427843
(2003-04-30)
|
등록번호 |
US-7769084
(2010-08-24)
|
발명자
/ 주소 |
- Pun, Thomas
- Kumar, Roger
- Nie, Xiaochun
- Wu, Hsi-Jung
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
6 인용 특허 :
36 |
초록
▼
Method For Implementing A Quantizer In A Multimedia Compression And Encoding System is disclosed. In the Quantizer system of the present invention, several new quantization ideas are disclosed. In one embodiment, adjacent macroblocks are grouped together into macroblock groups. The macroblock groups
Method For Implementing A Quantizer In A Multimedia Compression And Encoding System is disclosed. In the Quantizer system of the present invention, several new quantization ideas are disclosed. In one embodiment, adjacent macroblocks are grouped together into macroblock groups. The macroblock groups are then assigned a common quantizer value. The common quantizer value may be selected based upon how the macroblocks are encoded, the type of macroblocks within the macroblock group (intra-blocks or inter-blocks), the history of the motion vectors associated with the macroblocks in the macroblock group, the residuals of the macroblocks in the macroblock group, and the energy of the macroblocks in the macroblock group. The quantizer value may be adjusted in a manner that is dependent on the current quantizer value. Specifically, if the quantizer value is at the low end of the quantizer scale, then only small adjustments are made. If the quantizer value is at the high end then larger adjustments may be made to the quantizer. Finally, in one embodiment, the quantizer is implemented along with an inverse quantizer for efficient operation.
대표청구항
▼
We claim: 1. A method of quantizing a digital video frame comprising a plurality of macroblocks, wherein quantization of a macroblock comprises compressing values in the macroblock by using a single quantization value, said method comprising: dividing the video frame into more than one macroblock g
We claim: 1. A method of quantizing a digital video frame comprising a plurality of macroblocks, wherein quantization of a macroblock comprises compressing values in the macroblock by using a single quantization value, said method comprising: dividing the video frame into more than one macroblock group, each of said macroblock groups comprising one or more macroblocks, at least one of said macroblock groups comprising more than one macroblock; and for each macroblock group, assigning a same single quantizer value to all macroblocks in the macroblock group, wherein said single quantizer value for the macroblock group is dependent upon how macroblocks in said macroblock group are encoded; and for each macroblock group, quantizing the macroblocks in the macroblock group by using the same single assigned quantizer value as the single quantization value for each macroblock in the macroblock group. 2. The method of claim 1, wherein the macroblocks in each macroblock group are adjacent. 3. The method of claim 1, wherein a number of macroblocks in each macroblock group is dependent on a processor speed of a computer performing the quantization. 4. The method of claim 1, wherein a number of macroblocks in each macroblock group is dependent on a memory size of a computer performing the quantization. 5. The method of claim 1, wherein a number of macroblocks in each macroblock group is dependent on a cache memory speed of a computer performing the quantization. 6. The method of claim 1, wherein a number of macroblocks in each macroblock group is dependent on a frame size of said video frame. 7. The method of claim 1, wherein dividing the video frame into more than one macroblock group comprises determining a quality measure for each macroblock group. 8. The method of claim 7, wherein determining the quality measure for each macroblock group comprises: determining a sum of absolute differences value for each macroblock in said set of macroblocks that comprise said video frame; and determining an average sum of absolute differences value for each macroblock group. 9. The method of claim 7, wherein said single quantizer value for a particular macroblock group is further dependent upon said quality measure for said particular macroblock group. 10. The method of claim 7 further comprising: assigning each macroblock group into one of a plurality of quantization categories according to the quality measure of the macroblock group; and assigning a discrete quantization value to each macroblock group in a particular quantization category. 11. The method of claim 10, wherein said plurality of quantization categories are centered about an overall average quality measure for macroblocks in said video frame. 12. The method of claim 10, wherein said quality measure for a particular macroblock group comprises an average sum of all differences for macroblocks in said particular macroblock group. 13. The method of claim 1, wherein said single quantizer value for a particular macroblock group is further dependent upon whether said particular macroblock group contains only intra-blocks, only inter-blocks, or both intra-blocks and inter-blocks. 14. The method of claim 1, wherein said single quantizer value for a particular macroblock group is further dependent upon a history of motion vectors associated with macroblocks in said particular macroblock group. 15. The method of claim 14, wherein said single quantizer value for the particular macroblock group is given a fine quantizer value when said history of motion vectors associated with macroblocks in said particular macroblock group indicates a history of slow or no motion. 16. The method of claim 14, wherein said single quantizer value for the particular macroblock group is given a coarse quantizer value when said history of motion vectors associated with macroblocks indicates a history of fast motion. 17. The method of claim 1, wherein said single quantizer value for a particular macroblock group is further dependent upon current motion vectors associated with macroblocks in said particular macroblock group. 18. The method of claim 1, wherein said single quantizer value for a particular macroblock group is further dependent upon residual values for macroblocks in said particular macroblock group. 19. The method of claim 1, wherein said single quantizer value for a particular macroblock group is further dependent upon energy values for macroblocks in said particular macroblock group. 20. The method of claim 19 wherein said energy values for macroblocks in said particular macroblock group comprise frequency content of the macroblocks in said particular macroblock group. 21. The method of claim 1 further comprising: adjusting a quantizer value for a first particular group of macroblocks by small amounts when said quantizer value is near a low end of a quantizer value scale; and adjusting a quantizer value for a second particular group of macroblocks by large amounts when said quantizer value is near a high end of a quantizer value scale. 22. A method of quantizing a sequence of video frames comprising first and second video frames, each frame in the sequence comprising a plurality of macroblocks, wherein quantization of a macroblock comprises compressing values in the macroblock by using a single quantization value, said method comprising: dividing the first video frame into a first set of macroblock groups, each macroblock group in said first set of macroblock groups comprising one or more macroblocks, at least one of said macroblock groups comprising more than one macroblock; for each macroblock group in said first set of macroblock groups, assigning a same single quantizer value to all macroblocks in the macroblock group; for each macroblock group in said first set of macroblock groups, quantizing the macroblocks in the macroblock group by using the same single assigned quantizer value as the single quantization value for each macroblock in the macroblock group; dividing the second video frame into a second set of macroblock groups, each macroblock group in said second set of macroblock groups comprising one or more macroblocks, at least one of said macroblock groups comprising more than one macroblock, said second set of macroblock groups different in number from said first set of macroblock groups; for each macroblock group in said second set of macroblock groups, assigning a same single quantizer value to all macroblocks in the macroblock group; and for each macroblock group in said second set of macroblock groups, quantizing the macroblocks in the macroblock group by using the same single assigned quantizer value as the single quantization value for each macroblock in the macroblock group. 23. The method of claim 22, wherein the macroblocks in each macroblock group in each set of macroblocks are adjacent. 24. The method of claim 1, wherein the macroblocks in each macroblock group in each set of macroblocks have at least one similar statistic. 25. The method of claim 24, said method further comprising: before assigning the quantizer values, subdividing a particular macroblock group into two macroblock groups when at least one macroblock in said particular macroblock group has a statistic that differs from other macroblocks in said particular macroblock group. 26. The method of claim 24, wherein said similar statistic comprises a macroblock energy. 27. The method of claim 24, wherein said similar statistic comprises a macroblock residual. 28. The method of claim 24, wherein said similar statistic comprises a current motion vector. 29. The method of claim 24, wherein said similar statistic comprises a motion vector history. 30. The method of claim 24 wherein said similar statistic comprises a macroblock encoding method. 31. The method of claim 24 wherein said similar statistic comprises a macroblock type. 32. A method of encoding a video picture comprising a plurality of pixel sets, each pixel set comprising a plurality of pixels, the method comprising: grouping the plurality of pixel sets into one or more groups, each of said groups comprising one or more pixel sets, at least one of said groups comprising more than one pixel set, wherein a number of said pixel sets in each group is based on resources of a computer performing the encoding; for each group of pixel sets, assigning a same single quantizer value to all pixel sets in the group; and for each group of pixel sets, quantizing the pixel sets in the group by using the same single assigned quantizer value for each pixel set in the group. 33. The method of claim 32, wherein each of said resources is one of a processor speed, a memory size, and a cache memory speed. 34. The method of claim 32, wherein said pixel sets are macroblocks of said video picture. 35. A method of encoding a plurality of video pictures in a sequence of video pictures, each video picture comprising a plurality of pixel sets, each pixel set comprising a plurality of pixels, the method comprising: for each video picture, grouping the plurality of pixel sets into one or more groups, each of said groups comprising one or more pixel sets, at least one of said groups comprising more than one pixel set, wherein a number of said pixel sets in each group is dynamically changed for at least one video picture during the encoding of said video sequence; for each group of pixel sets, assigning a same single quantizer value to all pixel sets in the group; and for each group of pixel sets, quantizing the pixel sets in the group by using the same single assigned quantizer for each pixel set in the group. 36. The method of claim 35, wherein the number of pixel sets in a particular group is based on a history of motion vectors associated with pixel sets in said particular group. 37. The method of claim 35, wherein the number of pixel sets in a particular group is based on current motion vectors associated with pixel sets in said particular group. 38. The method of claim 35, wherein the number of pixel sets in a particular group is based on an amount of encoding residual from the pixel sets in said particular group. 39. The method of claim 35, wherein the number of pixel sets in a particular group is based on an energy of pixel sets in the particular group, wherein the energy of a particular pixel set is a measure of a frequency of data in the particular pixel set. 40. The method of claim 35, wherein said pixel sets are macroblocks of said video picture. 41. A method of encoding a video picture comprising a plurality of pixel sets, each pixel set comprising a plurality of pixels, the method comprising: grouping the plurality of pixel sets into one or more groups, each of said groups comprising one or more pixel sets, at least one of said groups comprising more than one pixel set; for each particular group of pixel sets, assigning a same single quantizer value to all pixel sets in the particular group based at least on an amount of residual to encode each pixel set in said particular group; and for each particular group of pixel sets, quantizing the pixel sets in the group by using the same single assigned quantizer value for each pixel set in the particular group. 42. The method of claim 41 further comprising: adjusting said quantizer value for a first particular group by small amounts when said quantizer value is near a low end of a quantizer value scale; and adjusting said quantizer value for a second particular group by large amounts when said quantizer value is near a high end of a quantizer value scale. 43. A computer readable medium storing a computer program for execution by a processor, the computer program for encoding a video picture comprising a plurality of pixel sets, wherein each pixel set comprises a plurality of pixels, the computer program comprising sets of instructions for: grouping the plurality of pixel sets into one or more groups, each of said groups comprising one or more pixel sets, at least one of said groups comprising more than one pixel set; assigning, for each particular group of pixel sets, assigning a same single quantizer value to all pixel sets in the particular group based at least on a motion vector history of pixel sets in said particular group; and quantizing, for each particular group of pixel sets, the pixel sets in the group by using the same single assigned quantizer value for each pixel set in the particular group. 44. The computer readable medium of claim 43, wherein said pixel sets are macroblocks of said video picture. 45. A computer readable medium storing a computer program for execution by a processor, the computer program for encoding a plurality of video pictures in a sequence of video pictures, each video picture comprising a plurality of pixel sets, each pixel set comprising a plurality of pixels, the computer program comprising sets of instructions for: grouping, for each video picture, the plurality of pixel sets into one or more groups, each of said groups comprising one or more pixel sets, at least one of said groups comprising more than one pixel set, wherein a number of said pixel sets in each group is dynamically changed for at least one video picture during the encoding of said video sequence; assigning, for each group of pixel sets, a same single quantizer value to all pixel sets in the group; and quantizing for each group of pixel sets, the pixel sets in the group by using the same single assigned quantizer value for each pixel set in the group. 46. The computer readable medium of claim 45, wherein the number of pixel sets in a particular group is based on a history of motion vectors associated with pixel sets in said particular group. 47. The computer readable medium of claim 45, wherein the number of pixel sets in a particular group is based on current motion vectors associated with pixel sets in said particular group. 48. The computer readable medium of claim 45, wherein the number of pixel sets in a particular group is based on an amount of encoding residual from the pixel sets in said particular group. 49. The computer readable medium of claim 45, wherein the number of said pixel sets in a particular group is based on energies of pixel sets in the particular group, wherein the energy of a particular pixel set is a measure of a frequency of data in the particular pixel set. 50. The computer readable medium of claim 45, wherein said pixel sets are macroblocks of said video picture. 51. A computer readable medium storing a computer program for execution by a processor, the computer program for encoding a video picture comprising a plurality of pixel sets, wherein each pixel set comprises a plurality of pixels, the computer program comprising sets of instructions for: grouping the plurality of pixel sets into one or more groups, each of said groups comprising one or more pixel sets, at least one of said groups comprising more than one pixel set; assigning, for each particular group of pixel sets, a same single quantizer value to all pixel sets in the particular group based at least on current motion vectors associated with the pixel sets in said particular group; and quantizing, for each particular group, the pixel sets in the particular group by using the same single assigned quantizer value for each pixel set in the particular group. 52. The computer readable medium of claim 51, wherein the computer program further comprises sets of instructions for: adjusting, for each particular group, said quantizer value by small amounts when said quantizer value is near a low end of a quantizer value scale; and adjusting, for each particular group, said quantizer value by large amounts when said quantizer value is near a high end of a quantizer value scale.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.