IP Library Granted Patent US 8,442,122
Granted Patent B2
US 8,442,122 · App. 11/906,878 · Granted May 14, 2013

Complexity scalable video transcoder and encoder

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 8,442,122
App. No.
11/906,878
Granted
May 14, 2013
Kind
B2
Abstract

A method of encoding scalable video data streams and an encoder configured to generate an encoded scalable video data stream is provided. The encoder includes a mode controller configured to store a plurality of encoding modes, select a sub-set of the plurality of encoding modes and select a first encoding mode. The encoder generates the encoded scalable video data stream dependent on the first encoding mode.

Claims (107)

1. An encoder configured to generate an encoded scalable video data stream, the encoder comprising:

a mode controller configured to employ one of a plurality of encoding modes by selecting a sub-set of the plurality of encoding modes each having a minimum size macroblock partition employed in the respective mode and selecting a first encoding mode from the sub-set of encoding modes based on a change that a computational complexity associated with a refinement process for the first encoding mode will produce in a capacity value for the encoder, wherein the encoder generates the encoded scalable video data stream dependent on the first encoding mode, and

wherein the encoded scalable data stream comprises a plurality of frames, and wherein the encoder is configured to determine an encoding time period for a current frame, to determine a target time period for a subsequent frame, and to generate a modified buffer value by adding a difference between the encoding time period and the target time period to a current buffer value.

2. The encoder according to claim 1 , wherein each mode has an associated complexity value.

3. The encoder according to claim 2 , wherein the mode controller is configured to select the sub-set of the plurality of encoding modes dependent the statistical properties of the complexity value of each the plurality of modes.

4. The encoder according to claim 2 , wherein the mode controller is configured to select the first encoding mode dependent on the complexity value of the encoding mode.

5. The encoder according to claim 4 , wherein the mode controller is configured to determine a coding/transcoding complexity correction value.

6. The encoder according to claim 4 , wherein the mode controller is configured to select a second encoding mode from the sub-set of encoding modes dependent on the first encoding mode and the capacity value of the encoder.

7. The encoder according to claim 1 , wherein the encoder is further configured to monitor the capacity value of the encoder.

8. The encoder according to claim 1 , wherein:

the encoder is configured to define at least one threshold value and to select the first encoding mode when the capacity value is equal to or greater than the threshold value.

9. The encoder according to claim 1 , wherein the encoder is configured to define at least two threshold values and to select the first encoding mode when the capacity value is equal to or greater than a first threshold value and/or a further encoding mode when the capacity value is equal to or greater than the second threshold value and less than the first threshold value.

10. The encoder according to claim 1 , wherein the capacity value of the encoder is at least one of:

a buffer value; and

a buffer filling rate.

11. The encoder according to claim 1 , wherein the capacity value is a combination of a buffer value and a buffer filling rate.

12. The encoder according to claim 1 , wherein the encoding mode comprises a plurality of encoding parameters, each of the encoding parameters having a parameter value.

13. The encoder according to claim 12 , wherein each encoding mode comprises at least two of the following encoding parameters:

an encoding algorithm;

a macro-block size;

a reference frame number;

a motion-vector; and

a refinement window size.

14. The encoder according to claim 1 , wherein the mode controller is configured to select the first encoding mode further dependent on a required encoded scalable data stream quality value.

15. A transcoder comprising the encoder according to claim 1 .

16. The transcoder according to claim 15 , wherein:

the transcoder is configured to receive an input encoded data stream,

the input encoded data stream comprises an input encoding mode, and

the mode controller is configured to select the first encoding mode further dependent on the input encoding mode.

17. The transcoder according to claim 16 , wherein the mode controller is further configured to select the sub-set of encoding modes further dependent on the input encoding mode.

18. An electronic device comprising the transcoder according to claim 15 .

19. The electronic device according claim 18 , wherein the electronic device is at least one of:

a set top box;

a user equipment;

a personal digital assistant;

a personal video player; and

a personal video recorder.

20. An electronic device comprising the encoder according to claim 1 .

21. The electronic device according to claim 20 , wherein the electronic device is at least one of:

a set top box;

a user equipment;

a personal digital assistant;

a personal video player; and

a personal video recorder.

22. The method according to claim 21 wherein the encoding mode comprises a plurality of encoding parameters, each of the encoding parameters having a parameter value.

23. The method according to claim 22 , wherein each encoding mode comprises at least two of the following encoding parameters:

an encoding algorithm;

a macro-block size;

a reference frame number;

a motion-vector; and

a refinement window size.

24. An encoder configured to generate an encoded scalable video data stream, the encoder comprising:

a mode controller configured to employ one of a plurality of encoding modes by selecting a sub-set of the plurality of encoding modes each having a minimum size macroblock partition employed in the respective mode and selecting a first encoding mode from the sub-set of encoding modes based on a computational complexity associated with a refinement process for the first encoding mode, wherein the encoder generates the encoded scalable video data stream dependent on the first encoding mode,

wherein each mode has an associated complexity value, wherein the mode controller is configured to select the first encoding mode dependent on the complexity value of the encoding mode and further dependent on a capacity value of the encoder, wherein the capacity value of the encoder is at least one of a buffer value and a buffer filling rate,

wherein the encoded scalable data stream comprises a plurality of frames, and wherein the encoder is configured to:

determine an encoding time period for a current frame, to determine a target time period for a subsequent frame, and

generate a modified buffer value by adding the difference between the encoding time period and the target time period to a current buffer value.

25. The encoder according to claim 24 , further configured to determine the buffer filling rate dependent on the current buffer value and the modified buffer value.

26. A method for encoding a scalable video data stream, comprising:

storing a plurality of encoding modes;

selecting a sub-set of the plurality of encoding modes each having a minimum size macroblock partition employed in the respective mode;

selecting a first encoding mode from the sub-set of the plurality of encoding modes based on a change that a computational complexity associated with a refinement process for the first encoding mode will produce in a capacity value for the encoder;

generating the encoded scalable video data stream dependent on the first encoding mode, wherein the encoded scalable data stream comprises a plurality of frames;

determining an encoding time period for a current frame and a target time period for a subsequent frame; and

generating a modified buffer value by adding a difference between the encoding time period and the target time period to a current buffer value.

27. The method according to claim 26 , further comprising associating each mode with a complexity value.

28. The method according to claim 27 , wherein selecting the sub-set of the plurality of encoding modes is dependent the statistical properties of the complexity value of each the plurality of modes.

29. The method according to claim 27 , wherein selecting the first encoding mode is dependent on the complexity value of the encoding mode.

30. The method according to claim 29 , further comprising determining a coding/transcoding complexity correction value.

31. The method according to claim 29 , further comprising selecting a second encoding mode from the sub-set of encoding modes dependent on the first encoding mode and the capacity value of the encoder.

32. The method according to claim 26 , further comprising monitoring the capacity value of the encoder.

33. The method according to claim 26 , further comprising defining at least one threshold value, wherein selecting the first encoding mode is dependent on the capacity value being equal to or greater than the at least one threshold value.

34. The method according to claim 26 , further comprising defining at least two threshold values, wherein selecting the first encoding mode is dependent on the capacity value being equal to or greater than a first threshold value and/or selecting a further encoding mode when the capacity value is equal to or greater than the second threshold value and less than the first threshold value.

35. The method according to claim 26 , wherein the capacity value of the encoder is at least one of:

a buffer value; and

a buffer filling rate.

36. The method according to claim 26 , wherein the capacity value is a combination of a buffer value and a buffer filling rate.

37. The method according to claim 26 , further comprising selecting the first encoding mode further dependent on a required encoded scalable data stream quality value.

38. A method for encoding a scalable video data stream, comprising:

storing a plurality of encoding modes;

selecting a sub-set of the plurality of encoding modes each having a minimum size macroblock partition employed in the respective mode;

selecting a first encoding mode from the sub-set of the plurality of encoding modes based on a computational complexity associated with a refinement process for the first encoding mode;

generating the encoded scalable video data stream dependent on the first encoding mode; and

associating each mode with a complexity value, wherein selecting the first encoding mode is dependent on the complexity value of the encoding mode and further dependent on a capacity value of the encoder, wherein the capacity value of the encoder is at least one of a buffer value and a buffer filling rate, and wherein the encoded scalable data stream comprises a plurality of frames, the method further comprising:

determining an encoding time period for a current frame;

determining a target time period for a subsequent frame; and

generating a modified buffer value by adding the difference between the encoding time period and the target time period to a current buffer value.

39. The method according to claim 38 , further comprising determining the buffer filling rate dependent on the current buffer value and the modified buffer value.

40. A method of transcoding a scalable video data stream comprising:

receiving a encoded video data stream;

at least partially decoding the encoded video data stream to output a video data stream; and

encoding the video data stream, wherein the encoding comprises:

storing a plurality of encoding modes,

selecting a sub-set of the plurality of encoding modes each having a minimum size macroblock partition employed in the respective mode,

selecting a first encoding mode from the sub-set of the plurality of encoding modes based on a computational complexity associated with a refinement process for the first encoding mode,

generating the encoded scalable video data stream dependent on the first encoding mode, wherein the encoded scalable data stream comprises a plurality of frames,

determining an encoding time period for a current frame and a target time period for a subsequent frame, and

generating a modified buffer value by adding a difference between the encoding time period and the target time period to a current buffer value.

41. The method according to claim 40 , further comprising determining the encoding mode of the received encoded video data stream, wherein selecting the first encoding mode is further dependent on the encoding mode of the received encoded video data stream.

42. The method according to claim 41 , wherein selecting the sub-set of encoding modes is further dependent on the encoding mode of the received encoded video data stream.

43. A computer program product embodied in a computer-readable media and configured to cause an apparatus to encode a scalable video data stream, the computer program product comprising computer-usable instructions for causing the apparatus to:

store a plurality of encoding modes;

select a sub-set of the plurality of encoding modes each having a minimum size macroblock partition employed in the respective mode;

select a first encoding mode from the sub-set of the plurality of encoding modes based on a computational complexity associated with a refinement process for the first encoding mode;

generate the encoded scalable video data stream dependent on the first encoding mode wherein the encoded scalable data stream comprises a plurality of frames;

determine an encoding time period for a current frame and a target time period for a subsequent frame; and

generate a modified buffer value by adding a difference between the encoding time period and the target time period to a current buffer value.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2022
From: STMICROELECTRONICS N.V.
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 062201/0917 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2008
From: LEFOL, DAMIEN; BULL, DAVID; CANAGARAJAH, NISHAN
To: STMICROELECTRONICS NV
Reel/Frame 020382/0055 →