IP Library Granted Patent US 7,675,970
Granted Patent B2
US 7,675,970 · App. 10/755,429 · Granted Mar 9, 2010

Method and apparatus for processing a bitstream in a digital video transcoder

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,675,970
App. No.
10/755,429
Granted
Mar 9, 2010
Kind
B2
Abstract

A method and apparatus for processing a bitstream in a digital video transcoder is described. In one example, an adjustment factor is determined that relates a number of bits representing a selected frame defined by the bitstream to a target number of bits for the selected frame. An average spatial activity value among sets of video data is associated with the selected frame. A spatial activity value for a selected set of the sets of video data is determined. A normalized spatial, activity value for the selected set of frequency video data is then computed in response to the average spatial activity value, the spatial activity value, and a function of the adjustment factor. Target bit reduction for each of the sets of video data may be computed using a function of the normalized spatial activity value and the adjustment factor.

Claims (174)

1. A method of processing a bitstream in a digital video transcoder, comprising:

(a) determining an adjustment factor that is a ratio of a number of bits representing a selected frame defined by said bitstream to a target number of bits for said selected frame;

(b) determining an average spatial activity value among sets of video data associated with said selected frame;

(c) determining a spatial activity value for a selected set of said sets of video data; and

(d) computing a normalized spatial activity value for said selected set of video data in response to said average spatial activity value, said spatial activity value, and a function of said adjustment factor;

wherein said normalized spatial activity value is computed using a second function, defined by:

N_act

j

=

f

(

rcFactor

)

×

act

j

+

avg_act

act

j

+

f

(

rcFactor

)

×

avg_act

,

where j represents said selected set of video data, N_act j is said normalized spatial activity, rcFactor is said adjustment factor, f is said function of said adjustment factor wherein f is not a constant function, act j is said spatial activity value, and avg_act is said average spatial activity value.

2. The method of claim 1 , further comprising:

(e) adjusting a quantization value associated with said selected set of video data in response to said normalized spatial activity value.

3. The method of claim 2 , further comprising:

(f) repeating steps (c) through (e) for one or more additional selected sets of said sets of video data.

4. The method of claim 3 , further comprising:

(g) repeating steps (a) through (f) for one or more additional frames defined by said bitstream.

5. The method of claim 4 , wherein said average spatial activity value associated with said selected frame is estimated in response to a previous average spatial activity value associated with a previous frame and a ratio of the number of bits representing said selected frame and a number of bits representing said previous frame.

6. The method of claim 1 , wherein said spatial activity value is determined in response to a number of frequency domain coefficients in said selected set of video data.

7. The method of claim 1 , wherein said spatial activity value is determined in response to values of frequency domain coefficients in said selected set of video data.

8. The method of claim 1 , wherein said spatial activity value is determined in response to a quantization value associated with said selected set of video data.

9. The method of claim l, wherein adjustment is conditional on said function of bits being unequal to said target number of bits, and wherein said function of said adjustment factor is defined by:

ƒ( rcFactor )= rcFactor.

10. The method of claim 1 , wherein said second function is approximated using a piecewise continuous function.

11. The method of claim 1 , further comprising:

(e) adjusting a quantization value associated with said selected set of video data in accordance with a third function, defined by:

outQL=inQL×rcFactor×N — act j ,

where outQL is said adjusted quantization value and inQL is said quantization value, and wherein adjustment is conditional on said number of bits being unequal to said target number of bits.

12. A method of processing a bitstream in a digital video transcoder, comprising:

(a) determining an adjustment factor that is a ratio of a number of bits representing a selected frame defined by said bitstream to a target number of bits for said selected frame;

(b) determining an average spatial activity value among macroblocks associated with said selected frame;

(c) determining a spatial activity value for a selected macroblock; and

(d) computing a normalized spatial activity value for said selected macroblock in response to said average spatial activity value, said spatial activity value, and a function of said adjustment factor;

wherein said normalized spatial activity value is computed using a second function, defined by:

N_act

j

=

f

(

rcFactor

)

×

act

j

+

avg_act

act

j

+

f

(

rcFactor

)

×

avg_act

,

where j represents said selected set of frequency domain coefficients, N_actj is said normalized spatial activity, rcFactor is said adjustment factor, f is said function of said adjustment factor wherein f is not a constant function, act j is said spatial activity value, and avg_act is said average spatial activity value.

13. The method of claim 12 , further comprising:

(e) adjusting a quantization value associated with said selected macroblock in response to said normalized spatial activity value.

14. The method of claim 13 , further comprising:

(f) repeating steps (c) through (e) for one or more additional selected macroblocks of said macroblocks.

15. The method of claim 14 , further comprising:

(g) repeating steps (a) through (f) for one or more additional frames defined by said bitstream.

16. The method of claim 15 , wherein said average spatial activity value associated with said selected frame is estimated in response to a previous average spatial activity value assocaited with a previous frame and a ratio of the number of bits representing said selected frame and a number of bits representing said previous frame.

17. The method of claim 16 , wherein each frame defined by said bitstream is one of an I-type, a P-type, and a B-type, and wherein said previous frame and said selected frame are of identical types.

18. The method of claim 16 , wherein each frame defined by said bitstream is one of a first type and a second type, said first type being defined by an I-frame or a P-frame, and said second type being defined by a B-frame, and wherein said previous frame and said selected frame are of identical types.

19. The method of claim 12 , wherein said spatial activity value is determined in response to discrete cosine transform (DCT) coefficients associated with said selected macroblock.

20. The method of claim 19 , wherein step (c) further comprises:

(c1) identifying coded luma blocks in said selected macroblock using a coded block pattern recovered from said bitstream;

(c2) determining a number of DCT coefficients among said identified coded luma blocks; and

(c3) defining said spatial activity value with respect to said number of DCT coefficients among said identified coded luma blocks.

21. The method of claim 19 , wherein step (c) further comprises:

(c1) identifying coded luma blocks and coded chroma blocks in said selected macroblock using a coded block pattern recovered from said bitstream;

(c2) determining a number of DCT coefficients among said identified coded luma blocks and coded chroma blocks; and

(c3) defining said spatial activity value with respect to said number of DCT coefficients among said identified coded luma blocks and coded chroma blocks.

22. The method of claim 12 , wherein adjustment is Conditional on said function of bits being unequal to said target number of bits, and wherein said function of said adjustment factor is defined by:

ƒ( rcFactor )= rcFactor.

23. The method of claim 12 , wherein said second function is approximated using a piecewise continuous function.

24. Apparatus for processing a bitstream in a digital video transcoder, comprising:

means for determining a ratio of a number of bits representing a selected frame defined by said bitstream to a target number of bits for said selected frame to define an adjustment factor;

means for determining an average spatial activity value among sets of frequency domain coefficients associated with said selected frame, each of said sets of frequency domain coefficients having at least one frequency domain coefficient;

means for determining a spatial activity value for a selected set of said sets of frequency domain coefficients; and

means for computing a normalized spatial activity value for said selected set of frequency domain coefficients in response to said average spatial activity value, said spatial activity value, and a function of said adjustment factor;

wherein said normalized spatial activity value is computed using a second function, defined by:

N_act

j

=

f

(

rc

Factor

)

×

act

j

+

avg_act

act

j

+

f

(

rc

Factor

)

×

avg_act

,

where j represents said selected set of frequency domain coefficients, N act j is said normalized spatial activity, rcFactor is said adjustment factor, f is said function of said adjustment factor wherein f is not a constant function, act j is said spatial activity value, and avg_act is said average spatial activity value.

25. A computer readable storage medium encoding program instructions for causing a computer to process a bitstream, the instructions comprising steps for:

(a) determining an adjustment factor that is a ratio of a number of bits representing a selected frame defined by said bitstream to a target number of bits for said selected frame;

(b) determining an average spatial activity value among sets of video data associated with said selected frame;

(c) determining a spatial activity value for a selected set of said sets of video data; and

(d) computing a normalized spatial activity value for said selected set of video data in response to said average spatial activity value, said spatial activity value, and a function of said adjustment factor;

wherein said normalized spatial activity value is computed using a second function, defined by:

N_act

j

=

f

(

rc

Factor

)

×

act

j

+

avg_act

act

j

+

f

(

rc

Factor

)

×

avg_act

,

where j represents said selected set of frequency domain coefficients, N act j is said normalized spatial activity, rcFactor is said adjustment factor, f is said function of said adjustment factor wherein f is not a constant function, act j is said spatial activity value, and avg_act is said average spatial activity value. of said adjustment factor.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034293/0138 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT CORPORATION
To: GENERAL INSTRUMENT HOLDINGS, INC.
Reel/Frame 030764/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT HOLDINGS, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 030866/0113 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2013
From: GENERAL INSTRUMENT CORPORATION
To: GENERAL INSTRUMENT HOLDINGS, INC.
Reel/Frame 030725/0476 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2013
From: GENERAL INSTRUMENT HOLDINGS, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 030725/0642 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2004
From: NEMIROFF, ROBERT S.; WU, SIU-WAI
To: GENERAL INSTRUMENT CORPORATION
Reel/Frame 014897/0110 →